Shell 循环语句用法小结
Shell 循环语句用法小结
在写shell脚本时,常常会用到循环语句。这里简单总结下常用的3种循环语句,以便以后能快速地参考写出【哎,最近脑子不太好使了,在多种语言交叉编程时,常常切换不过来,犯低级错误】,废话不说,开始demo:1、for
主要用于:在已知序列里遍历元素
[plain]- #! /bin/sh -
- if [ $# -ge 1 ]; then
- path=$@
- else
- path=*.sh
- fi
- for i in $path
- do
- ls -lh $i
- done
注意:for循环的in列表时可选的,如果省略,shell会遍历整个命令行参数,此时 for i 相当于 for i in "$@"
再给一个for的用法示例:
[plain]- #! /bin/sh -
- for i in `seq 1 9`
- do
- echo $i
- done
注意:for in 可以和 `` 与 $() 合用,上面的for i in `seq 1 9` 也等价与 for i in $(seq 1 9)
再给一个for的用法示例:
[plain]- #! /bin/sh -
- for i in {a..z}
- do
- echo $i
- done
再给个for的用法示例:
[plain]- #! /bin/sh -
- for (( i=1; i<=10; i++ ))
- do
- echo $i
- done
2、while
主要用于:当某条件成立时,一直执行
- #! /bin/sh -
- cnt=9
- while [ $cnt -ge 0 ]
- do
- echo $((cnt--))
- done
注意:1、算术运算,需要放在$(()) 的括号中
2、对于变量的算术运算,在$(())中,变量前面不需要$
3、unitl
主要用于:当某条件成立时,停止执行
- #! /bin/sh -
- cnt=9
- until [ $cnt -lt 0 ]
- do
- echo $cnt
- cnt=$((cnt - 1))
- done
注意:给变量赋值时,前面不要加$
判断语句,可以参考 Shell case语句用法小结 (见 )与 Shell if语句用法小结 (见 )
评论暂时关闭