shell中的循环

 shell中的循环

for循环

类似于C语言的步长控制

例如:

for ((i=1;i<=10;i++)); do echo $(expr $i * 4 ); done 

将1到10,依次乘以4,然后打印出来。

这里顺便提一下,shell里面表达式的计算,可以有其他形式:

for ((i=1;i<=10;i++)); do echo $((i * 4)); done   
for ((i=1;i<=10;i++)); do echo $[i * 4 ]; done          

类似于python的迭代序列

比如遍历一个数组:

a=(1 3 5 7 9 11)

for v in ${a[*]}; do
    echo $v
done

上面这段代码可以用seq命令简化:

 for i in $(seq 1 2 11) ;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
原文地址:https://www.cnblogs.com/chenny7/p/3687622.html