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.数组删除