Shell脚本—while循环,case语句
-
while循环结构
----------------条件不成立-------> ↑ ↓ ↓ while条件测试操作 条件成立 ------>done结束循环 ↑ ↓ <----------do命令序列
-
while语句语法
while [ 条件表达式 ]
do
命令序列
done
-
for语句和while语句的区别
for后面跟上的是一个取值列表,可以是一个列表文件,也可以是多个以空格分隔开的值(如:t1 t2 t3…)
while后面跟上的是一个条件表达式
while语句执行时,根据特定的条件反复执行一个命令序列,直到条件不满足时才停止,脚本应用中,为了避免死循环,循环体内应包括修改测试条件的语句,在适当时使测试条件不成立,来停止语句。
while语句的执行流程,首先判断while 后的条件测试结果,如果成立,则执行do-done循环体中的命令序列,返回后再次测试判断条件测试结果,如果条件仍成立,继续执行循环体,知道测试结果不成立为止,跳转到done语句,表示结束。
两个特殊的条件测试操作:
true真条件永远成立,无限循环,除非强制终止
false 假循环体不会执行
case分支语句
-
case语句结构
----------------------------------------- ↑ ↑ ↓ (;;) ↑ ↓ ↑ ↑ ↓ 命令序列1 (;;) esac结束分支 ↑是 ↑ ↓ --->case 变量=模式1 命令序列2 默认命令序列 ↓否 ↑ ↓ ---------->变量=模式2 ↓ ↓否 ↓ ------------------->变量=其他值(*)
-
case语法结构
case $变量名 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*)
默认命令序列
esac ##结束语
-
格式注释
case行尾必须为单词“in”,每个模式必须以右括号“)”结束
双分号“;;”表示命令序列结束。
模式字符串中,可以用方括号表示一个连续的范围(例:[O-9]),还可以用竖号T"来表示"或"
最后的“*”表示一个通配符 -
关键词
sleep *:睡眠*秒
seq 起始值 步长 结束值:类似{1…100…2}
break:退出循环语句,跳到done语句继续执行
continue:回到循环开始位置