for loops for arg in [list]
这是一个基本的循环结构.它与C的for结构有很大不同.
for arg in [list] do command(s)... done
在循环的每次执行中,arg将顺序的存取list中列出的变量.
for arg in "$var1" "$var2" "$var3" ... "$varN" # 在第1次循环中, arg = $var1 # 在第2次循环中, arg = $var2 # 在第3次循环中, arg = $var3 # ... # 在第N次循环中, arg = $varN # 在[list]中的参数加上双引号是为了防止单词被不合理地分割.
list中的参数允许包含通配符.
如果do和for想在同一行出现,那么在它们之间需要添加一个";".
for arg in [list] ; do
#!/bin/bash # 列出所有的行星名称. for planet in Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune Pluto do echo $planet # 每个行星被单独打印在一行上. done echo
for planet in "Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune Pluto" # 所有的行星名称打印在同一行上. # 整个'list'只有一个变量,用""封成一个变量. do echo $planet done exit 0
while
这种结构在循环的开头判断条件是否满足,如果条件一直满足,那就一直循环下去(0为退出码[exit status]).与for 循环的区别是,这种结构适合用在循环次数未知的情况下.
while [condition]
do
command...
done
和for循环一样,如果想把do和条件放到同一行上还是需要一个";".
while [condition] ; do
until
这个结构在循环的顶部判断条件,并且如果条件一直为false那就一直循环下去.(与while相反).
until [condition-is-true]
do
command...
done
注意: until循环的判断在循环的顶部,这与某些编程语言是不同的.
与for循环一样,如果想把do和条件放在一行里,就使用";".
until [condition-is-true] ; do