shell脚本
case流程控制语句丶循环语句for 丶while
case
case语句和if…elif…else语句一样都是多分支条件语句,case语句主要适用于某个变量存在多种取值,需要对其中的每一种取值分别执行不同的命令序列,这种情况与多分支的if语句相似
if语句需要判断多个不同的条件
case语句只是判断一个变量的不同取值。
case是根据变量的不同取值进行比较,然后针对不同的取值分别执行不同的命令。
case格式:
case 变量值 in
1)
命令序列1
;;
2)
命令序列2
;;
*)
;;
默认命令序列
esac
case语句会取出变量中的值,然后与语句体中的值逐一比较如果符合则执行对应的程序,如果不符合则以此比较下一个值;如果都不符合则执行*)中的程序。
每个分支程序之后必须要以“;;”双分号结尾代表结束
case以“case”开头
以“esac”结尾
循环语句
for
for 循环是固定循环,也就是在循环时已经知道需要进行几次循环。有时也把 for 循环称为计数循环
语法格式:
for 变量名 in 变量取值列表
do
commands
done
for 循环的次数取决于 in 后面值的个数(以空格分隔),有几个值就循环几次,并且每次循环都把值赋予变量。
数字列表的获取方式seq
-w 补全 例:
seq -w 6 10
06
07
08
09
10
while
重复判断条件测试操作,只要条件成立就反复执行对应的命令序列,直到条件测试不成立。
语法格式:
while 条件测试操作
do
命令系列
done
注意:避免陷入死循环,条件测试设置为while true 或 while false 循环退出根据测试条件的退出码来定,一定要设置退出条件。
在shell脚本中,exit语句是用来退出当前脚本的,shell脚本中exit 语句后续的程序就不再执行,直接退出脚本。