Shell 循环语句、函数及数组

for循环语句
读取不同的变量值,用来逐个执行同一组命令。

for 变量名 in 取值列表
do
命令序列
done

在这里插入图片描述




while循环语句
重复测试某个条件,只要条件成立就反复执行,直到条件不成立结束循环。

while 条件测试操作
do
命令序列
done
在这里插入图片描述




until循环语句
重复测试某个条件,只要条件不成立就反复执行,直到条件成立结束循环。(与while循环语句相反)
在这里插入图片描述






for循环示例
输入某个范围内的数,分别计算从1到这个数的奇数和、偶数和,当输入不在范围内时,提示输入错误。

1.编写脚本文件。
在这里插入图片描述

2.赋予脚本文件执行权限并运行测试。
在这里插入图片描述
在这里插入图片描述



while循环语句示例
来玩个好玩的,做个猜0999数字大小的游戏,用系统变量RANDOM随机生成数字取余后赋值给我们自定义的变量。运行脚本后,输入0999的数字猜大小,如果没有猜中,会提示猜得数字偏大或偏小,没猜中的话会一直循环下去,直达我们猜中了这个数字,并且会提示我们猜了几次。

1.编辑脚本文件。
在这里插入图片描述
注:while后面的true 表示一直循环;let TIMES++ 表示循环次数,也就是我们猜价格的次数;exit 0 表示$?,返回值状态为0表示程序执行正确,这里用于猜对价格后结束循环。

2.赋予脚本文件执行权限并运行测试。
在这里插入图片描述



until循环语句示例
计算1到50的和,定义两个初始变量,一个为总和,一个为加数。从1开始,每一次循环加数都增加1,只要加数满足小于等于50的条件,就一直循环下去,直到加数大于50,循环结束,输出总和值。

1.编写脚本文件。
在这里插入图片描述

2.赋予脚本文件执行权限并运行测试。
在这里插入图片描述










Shell函数
·将命令序列按格式写在一起
·可方便重复使用命令序列
·Shell函数定义
[ function ] 函数名(){
命令序列
[ return x ]
}
·调用函数的方法
函数名 [参数1][参数2]

在Shell脚本中函数的执行并不会开启一个新的子Shell,而是仅在当前定义的Shell环境中有效。如果Shell脚本中的变量没有经过特殊设定,默认在整个脚本中都是有效的。在编写脚本时,有时需要将变量的值限定在函数内部,可以通过内置命令local来实现。函数内部变量的使用,可以避免函数内外同时出现同名变量对脚本结果的影响。
例:
在这里插入图片描述

在这里插入图片描述
在这个脚本中,myfun函数内部使用了local命令设置变量i,其作用是将变量i限定在函数内部。myfun函数外部同样定义了变量i,内部变量i和全局变量i互不影响。脚本执行时先调用了函数myfun,函数内部变量i为8,所以输出结果是8。




函数的作用范围
·函数在Shell脚本中国仅在当前Shell环境中有效
·Shell脚本中变量默认全局有效
·将变量限定在函数内部使用local命令



函数的参数
·参数的用法
函数名称 参数1 参数2 参数3 …
·参数的表示方法
·$1 $2 $3 … ${10} ${11} …






Shell数组

应用场景包括
·获取数组长度
·获取元素长度
·遍历元素
·元素切片
·元素替换
·元素删除


数组定义方法
·方法一:数组名=(value0 value1 value2 …)
·方法二:数组名=([0]=value [1]=value [2]=value …)
·方法三:列表名=”value0 value1 value2 …”
数组名= ($列表名)
·方法四:数组名[0]=”value”
数组名[1]=”value”
数组名[2]=”value”



数组包括的数据类型
·数值类型
·字符类型(使用””或’’定义)




示例

1.获取数组长度
在这里插入图片描述


2.读取某下标赋值
在这里插入图片描述


3.数组遍历
在这里插入图片描述
在这里插入图片描述


4.数组切片
在这里插入图片描述


5.数组替换
在这里插入图片描述


6.数组删除
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值