循环的中断
Bash 提供了两个内部命令break
和continue
,用来在循环内部跳出循环。
- break
命令立即终止循环,程序继续执行循环块之后的语句,即不再执行剩下的循环。
- continue
命令立即终止本轮循环,开始执行下一轮循环。
项目 | bash | csh |
---|---|---|
break | #!/bin/bash for number in 1 2 3 4 5 6 do echo “number is $number” if [ “$number” = “3” ]; then break fi done |
|
continue | #!/bin/bash while read -p “What file do you want to test?” filename do if [ ! -e “$filename” ]; then echo “The file does not exist.” continue fi echo “You entered a valid file..” done |
while 循环的用法
while
循环有一个判断条件,只要符合条件,就不断循环执行指定的语句。
项目 | bash | csh |
---|---|---|
while | while expression; do commands done |
while(expression) commands continue break end |
示例 | #关键字do 可以跟while 不在同一行,这时两者之间不需要使用分号分隔。while true do echo ‘Hi, while looping …’; done |
|
#while循环写成一行,也是可以的 while true; do echo ‘Hi, while looping …’; done |
until 循环的用法
until
循环与while
循环恰好相反,只要不符合判断条件(判断条件失败),就不断循环执行指定的语句。一旦符合判断条件,就退出循环。
项目 | bash | csh |
---|---|---|
while | until condition; do commands done |
|
示例 | #!/bin/bash number=0 until [ “$number” -ge 10 ]; do echo “Number = $number” number=$((number + 1)) done |
for…in 循环
for...in
循环用于遍历列表的每一项。
for
循环会依次从list
列表中取出一项,作为变量variable
,然后在循环体中进行处理。
项目 | bash | csh |
---|---|---|
for…in | for variable in list do commands done |
|
示例 | #!/bin/bash for i in word1 word2 word3; do echo $i done |
|
列表由通配符产生 | for i in *.png; do ls -l $i done |
|
列表通过子命令产生 | #!/bin/bash count=0 for i in $(cat ~/.bash_profile); do count=$((count + 1)) echo “Word $count ($i) contains $(echo -n $i | wc -c) characters” done |
for
项目 | bash | csh |
---|---|---|
for | for (( expression1; expression2; expression3 )); do commands done |
|
示例 | for (( i=0; i<5; i=i+1 )); do echo $i done |
|
#直到用户输入了一个点(. )为止,才会跳出循环for ((;;)) do read var if [ “$var” = “.” ]; then break fi done |
参考文献
- 阮一峰.
Bash 脚本教程
[EB/OL].https://wangdoc.com/bash, 2020/12/21.该教程的部分内容是比较完善的。
姊妹篇
最后更新: 2022/02/19 09:46:04
编者: David Faraday
主用链接: https://faradays-studio.gitee.io/202012261733/
备用链接: https://faradays-studio.github.io/202012261733/
引用、演绎等请注明出处,共创和谐社会,谢谢你的合作!