if结构
if 表达式
then 命令表
[elif 表达式
then 命令表]
[else 命令表]
fi
可以把if和then放在同一行,用分号“;”分隔:
if 表达式; then
命令表
fi
case结构
case 表达式 in
模式11 [ |模式12 ]...) 命令表1;;
模式22 [ |模式22 ]...) 命令表2;;
...
*) 命令表n;;
esac
每个分支以右括号“)”分隔模式与命令,管道符“|”分隔同一分支的各个模式,表示或,两个分号“;;”表示分支结束。星号“*”表示除以上模式之外的情况。
select结构生成一个数字化的菜单,并提示用户进行选择,默认提示符为“#”。用户只需在提示符下输入对应菜单项的数字,即可完成选择。
select 变量 in 列表
do
命令表
done
例:
select N in one two three
do
case $N in
one) echo I;;
two) echo II;;
three) echo III;;
*) echo wrong
break;
esac
done
上面的代码会显示菜单:
1) one
2) two
3) three
#?
while结构
while 表达式
do
命令表
done
for循环
for 变量 [in 列表]
do
命令表
done
如果省略了列表,则隐含表示为“for 变量 in $@”,即位置参数列表。bash里的for不能设定循环执行的次数。
until循环
until
命令表1
test 表达式
do
命令表2
done
命令表1在循环开始前执行,测试如果为假,则进入循环,执行命令表2。之后再次执行命令表1,测试…… 直到测试结果为真,终止循环。
各循环结构支持break和continue。