Linux Shell编程(四)--Shell控制结构

来源:互联网 发布:seo门户栏目伪静态 编辑:程序博客网 时间:2024/06/04 19:09

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