Bash 中有三种循环 while、 until、 for。
while 循环
while 循环的结构如下:
1 | while condition ; do |
其中 condition 与 if 的语法一致。
例如:
1 | num=0 |
until 循环
until 与 while 循环刚好相反,until 等到条件满足时退出循环,语法结构与 while 一致:
1 | until condition ; do |
for .. in 循环
for .. in 循环可以用于遍历列表:
1 | for name in list ; do |
list 可以是使用空格隔开的参数列表,例如:a b c d e
,如果不指定 list,则默认使用 $@
:
1 | for name ; do |
for 循环
Bash 支持和很多高级语言一样的 for 循环:
1 | for (( exp1; exp2; exp3 )); do |
exp1 初始化循环条件,exp2 作为循环判断条件,每次循环开始时执行,exp3 每次循环结束后执行。注意括号内的变量不需要加 $
。
例如:
1 | for (( i=0; i<10; i++ )); do |
也可以省略括号中的语句:
1 | for ((;;)); do |
break, continue
可以在循环体中使用 break 和 continue:
- break :跳出循环
- continue :终止本次循环,继续下次循环
select 语句
select 语句可以生成菜单供用户选择,其语法与 for … in 基本一致:
1 | select name in list ; do |
用户输入的内容会保存在 $REPLY
变量中, select 语句会一直循环,需要使用 break 手动退出。