break与continue与其他编程相同里的概念相同,代码示例如下:
# break示例:while truedo echo -n 输入 1 到 5 之间的数字: read anum case $anum in 1|2|3|4|5) echo 你输入的数字为 $anum! ;; *) echo 你输入的数字不是 1 到 5 之间的! 游戏结束 break ;; esacdone# 输出结果输入 1 到 5 之间的数字:3你输入的数字为 3!输入 1 到 5 之间的数字:7你输入的数字不是 1 到 5 之间的! 游戏结束# continue示例while truedo echo -n 输入 1 到 5 之间的数字: read anum case $anum in 1|2|3|4|5) echo 你输入的数字为 $anum! ;; *) echo 你输入的数字不是 1 到 5 之间的! 游戏结束 continue echo 游戏结束 ;; esacdone# 输出结果,无法结束输入 1 到 5 之间的数字:3你输入的数字为 3!输入 1 到 5 之间的数字:7你输入的数字不是 1 到 5 之间的! 游戏结束输入 1 到 5 之间的数字:select选择一个列表中的一个值,item列表值可以分别单独写出来,也可以是一个列表
语法格式如下:
select var in item1 item2..itemndo commanddone代码示例如下:
list=(a b)ps3=please select the value:select var in ${list[*]};do breakdoneecho your select is $var# 输出结果1) a2) bplease select the value:1your select is a1.9 函数函数定义
shell中函数的定义格式如下, 其中return的返回值在[0-225] 之间,如果不加return将以最后一条命令运行结果,作为返回值.
[ function ] funname(){ action; [return int;]}示例代码:
# 完整格式定义函数function test1() { echo hello world1 return 0}# 简写的函数定义test2() { echo hello world2}# 函数调用test1# 获取上一条指令的返回值,紧接着test1之后就是代表获取test1函数的返回值echo $?test2# 输出结果hello world10hello world2函数参数
在shell中,调用函数时可以向其传递参数。在函数体内部,通过 $$
n 的形式来获取参数的值,例如,
$1表示第一个参数,$2表示第二个参数,依此类推。`$*`表示所有的参数,`$#`表示参数的个数带参数的函数示例:```add() { echo parmas: $* echo params count:$# return $(($1+$2))}add 1 2echo sum is $?# 输出结果parmas: 1 2params count:2sum is 3```根据上面的定义来看shell函数只能返回整形且为0-255之间,那么我们想返回字符串或者数组有没有其他办法呢?我们可以通过其他方法来实现类似的效果的,示例代码如下:**获取字符串**结果,调用的时候通过`$(function_name param)`方式来调用,那这个函数里面所有`echo`出来的字符串就会赋值给你的变量,示例如下:```hello() { echo say hello to $1}result=$(hello world)echo $result# 输出结果say hello to world```**获取数组** ,这个可以通过定义全局变量,在函数里面对其赋值```arr=()testarray() { arr[0]=1 arr[1]=2}testarrayecho arr content is ${arr[*]}echo arr size is ${#arr[*]}# 输出结果arr content is 1 2arr size is 2```# **2.参考**bash手册:https://www.gnu.org/software/bash/manual/bash.htmlzsh手册: https://zsh.sourceforge.io/doc/release/index.html#top
使命召唤手游电脑模拟器,夜神安卓模拟器下载教程
华为P10销量千万太难? 三星S8两天预约55万,小米6在路上
美国宾夕法尼亚州立大学:仿人眼设计,研发新型传感器让相机摆脱滤镜实现高清图像拍摄
军用/航空级电源以及与商用现货或COTS设计相比的主要差异简介
农村能源互联网的现状及问题
shell脚本基础知识汇总4
555声控延时台灯电路
高通究竟有何魔力,搭配高通骁龙835处理器的小米6售价2999米粉不嫌高
军用电解电容器的应用可靠性选择
峰会回顾第22期 | OpenHarmony等开源软件在安全关键领域中的应用——以Linux的安全项目为例
示波器软件概述及主要功能
汽车喇叭分频器怎么接,分频器可以不要吗
处理器需要注意的几个漏洞和权限问题
首个空气净化机器人AIRBOT亮相,将给人类的生活带来巨大改变
消防智能照明模块基本建设的目地及其实际意义
汽车线束工厂MES系统的核心作用
多层板工艺
IIC白皮书阐释聚焦工厂应用概念
企业如何借助人工智能改变增长方式
中航光电高压小电流EVH2系列产品介绍