循环语句
for…in…do…done
命令格式
1 2 3 4 5 6 | |
示例1
输出a 2 cc,每个元素一行:
1 2 3 4 | |
示例2
输出当前路径下的所有文件名,每个文件名一行:
1 2 3 4 | |
示例3
输出1-10
1 2 3 4 | |
示例4
使用{1..10} 或者 {a..z}
1 2 3 4 | |
for ((…;…;…)) do…done
命令格式
1 2 3 4 5 | |
示例
输出1-10,每个数占一行:
1 2 3 4 | |
while…do…done循环
命令格式
1 2 3 4 5 6 | |
示例
文件结束符为Ctrl+d,输入文件结束符后read指令返回false。
1 2 3 4 | |
until…do…done循环
Note
当条件为真时结束。
命令格式
1 2 3 4 5 6 | |
示例
当用户输入yes或者YES时结束,否则一直等待读入。
1 2 3 4 | |
break命令
Note
跳出当前一层循环,与C/C++不同的是:break不能跳出case语句。
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
该示例每读入非EOF的字符串,会输出一遍1-7。
该程序可以输入Ctrl+d文件结束符来结束,也可以直接用Ctrl+c杀掉该进程。
continue命令
跳出当前循环。
示例
1 2 3 4 5 6 7 8 | |
该程序输出1-10中的所有奇数。
死循环的处理方式
如果Terminal可以打开该程序,则输入Ctrl+c即可。
否则可以直接关闭进程:
- 使用
top命令找到进程的PID - 输入
kill -9 PID即可关掉此进程