while commands; do commands; done
while [ $count -le 5 ]; do echo $count count=$((count + 1)) done echo "Finished."
until 命令与 while 非常相似,除了当遇到一个非零退出状态的时候,while 退出循环, 而 until 不退出。一个 until 循环会继续执行直到它接受了一个退出状态零。
until commands; do commands; done
#!/bin/bash # until-count: display a series of numbers count=1 until [ $count -gt 5 ]; do echo $count count=$((count + 1)) done echo "Finished."
for variable [in words]; do commands done
variable 是一个变量的名字,这个变量在循环执行期间会增加,words 是一个可选 的条目列表,其值会按顺序赋值给 variable,commands 是在每次循环迭代中要执行的命令。
# 普通列表 for i in A B C D; do echo $i; done # 花括号展开 for i in {A..D}; do echo $i; done # 路劲名展开 for i in distros*.txt; do echo $i; done # 命令替换展开 for i in $(ls -l); do echo $i; done
for (( expression1; expression2; expression3 )); do commands done
expression1 用来初始化循环条件,expression2 用来决定循环结束的时间,还有在每次循环 迭代的末尾会执行 expression3。
for (( i=0; i<5; i=i+1 )); do echo $i done