for 循环
与其他编程语言类似,Shell支持for循环。
for循环一般格式为:
for var in item1 item2 ... itemN do command1 command2 ... commandN done
写成一行:
for var in item1 item2 ... itemN; do command1; command2… done;
当变量值在列表里,for循环即执行一次所有命令,使用变量名获取列表中的当前取值。命令可为任何有效的shell命令和语句。in列表可以包含替换、字符串和文件名。
in列表是可选的,如果不用它,for循环使用命令行的位置参数。
例如,顺序输出当前列表中的数字:
for loop in 1 2 3 4 5 do echo "The value is: $loop" done
输出结果:
The value is: 1
The value is: 2
The value is: 3
The value is: 4
The value is: 5
顺序输出字符串中的字符:
for str in 'This is a string'
do
echo $str
done
输出结果:
This is a string
shell中的for循环不仅可以用文章所述的方法,
对于习惯其他语言for循环的朋友来说可能有点别扭。
for((assignment;condition:next));do command_1; command_2; commond_..; done;
如上所示,这里的for循环与C中的相似,但并不完全相同。
通常情况下shell变量调用需要加$,但是for的(())中不需要,下面来看一个例子:
#!/bin/bash for((i=1;i<=5;i++));do echo "这是第$i次调用"; done;
执行结果:
这是第1次调用 这是第2次调用 这是第3次调用 这是第4次调用 这是第5次调用
与C中相似,赋值和下一步执行可以放到代码之前循环语句之中执行,这里要注意一点:如果要在循环体中进行for中的next操作,记得变量要加$.....不然程序会变成死循环。
发表评论