第十二天:SHELL编程之循环while/until/select
一、循环while
1、格式
while COMMANDS; do COMMANDS; done
while CONDITION; do
循环体
done
2、while read
while read line; do
循环体
done < /PATH/FROM/SOMEFILE
二、循环until
1、格式
until COMMANDS; do COMMANDS; done
until CONDITION; do
循环体
done
三、循环控制语句 continue
提前结束第N层的本轮循环,而直接进入下一轮判断;最内层为第1层
1、格式
while CONDITION1; do
CMD1
...
if CONDITION2; then
continue
fi
CMDn
...
done
2、
四、循环控制语句 break
提前结束第N层整个循环,最内层为第1层
1、格式
while CONDITION1; do
CMD1
...
if CONDITION2; then
break
fi
CMDn
...
done
五、循环控制 shift 命令
用于将参量列表 list 左移指定次数,缺省为左移一次。
参量列表 list 一旦被移动,最左端的那个参数就从列表中删除。while 循环遍历位置参量列表时,常用到shift
六、循环与菜单 select
1、格式
select NAME [in WORDS ... ;] do COMMANDS; done
select NAME in list ;do
循环体命令
done
2、说明
select 循环主要用于创建菜单,按数字顺序排列的菜单项显示在标准错误上,并显示 PS3 提示符,
等待用户输入
用户输入菜单列表中的某个数字,执行相应的命令
用户输入菜单列表中的某个数字,会将对应的WORD值赋值给NAME变量
用户输入被保存在内置变量 REPLY 中
select 是个无限循环,因此要用 break 命令退出循环,或用 exit 命令终止脚本。也可以按 ctrl+c
退出循环
select 经常和 case 联合使用
与 for 循环类似,可以省略 in list,此时使用位置参量