shell中的循环
for循环
类似于C语言的步长控制
例如:
for ((i=;i<=;i++)); do echo $(expr $i \* ); done
将1到10,依次乘以4,然后打印出来。
这里顺便提一下,shell里面表达式的计算,可以有其他形式:
for ((i=;i<=;i++)); do echo $((i * )); done
for ((i=;i<=;i++)); do echo $[i * ]; done
类似于python的迭代序列
比如遍历一个数组:
a=( ) for v in ${a[*]}; do
echo $v
done
上面这段代码可以用seq命令简化:
for i in $(seq ) ;do echo $i ;done
打印出所有小写字母:
for i in {a..z} ;do echo $i ;done
遍历脚本参数:
for i in $* ; do
echo $i
done
遍历当前目录下所有以.txt结尾的文件:
for f in $(ls *.txt); do
echo $f
done
可以简化为:
for f in *.txt; do
echo $f
done
另外,for...in循环会对字符串按空格分隔进行遍历:
str="hello world how do you do!" for i in $str; do
echo $i ;
done
while循环
例如, 按行遍历一个文件:
while read line; do
#process line
done < file