https://blog.csdn.net/weixin_38280090/article/details/81843264
原创舌耳 发布于 2018-08-19 22:58:17 阅读数 15072 收藏
展开
for/do/done
Shell 脚本的 for 循环结构和 C 语言很不一样, 它类似于某些编程语言的 foreach 循环. 例如:
- #! /bin/sh
- for FRUIT in apple banana Pear; do
- echo "I like $FRUIT"
- done
FRUIT 是一个循环变量, 第一次循环 $FRUIT 的取值是 apple, 第二次取值是 banana, 第三次取值是 Pear. 再比如, 要将当前目录下的 chap0,chap1,chap2 等文件名改为 chap0~,chap1~,chap2~ 等 (按惯例, 末尾有~ 字符的文件名表示临时文件), 这个命令可以这样写:
for FILENAME in chap?; do mv $FILENAME $FILENAME~; done
也可以这样写:
- for FILENAME in `ls chap?`; do mv $FILENAME $FILENAME~; done
- while/do/done
while 的用法和 C 语言类似. 比如一个验证密码的脚本:
- #! /bin/sh
- echo "Enter password:"
- read TRY
- while [ "$TRY" != "secret" ]; do
- echo "Sorry, try again"
- read TRY
- done
下面的例子通过算术运算控制循环的次数:
- #! /bin/sh
- COUNTER=1
- while [ "$COUNTER" -lt 10 ]; do
- echo "Here we go again"
- COUNTER=$(($COUNTER+1))
- done
Shell 还有 until 循环, 类似 C 语言的 do...while 循环. 本章从略.
break 和 continue
break[n] 可以指定跳出几层循环, continue 跳过本次循环步, 没跳出整个循环.
break 跳出, continue 跳过.
----------------
来源: http://www.bubuko.com/infodetail-3365063.html