shell中的流程控制
1、if判断
-
语法:if [ 条件判断式 ];then
程序
fi
或者
if [ 条件判断式 ]
then
程序
fi
注意事项:
- [ 条件判断式 ] ,中括号和条件判断式之间必须有空格
- if后要有空格
范例:输入一个数字,如果是1,则输出nihao,如果是2,则输出zaijian,如果是其他,什么也不输出。
2、case语句
-
语法: case $变量名 in
“值1”)
如果变量的值等于1,则执行程序1
;;
“值2”)
如果变量的值等于2,则执行程序2
;;
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
注意事项:
1)case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
2)双分号“;;”表示命令序列结束,相当于java中的break。
3)最后的“*)”表示默认模式,相当于java中的defalt
范例:输入一个数字,如果是1,则输出ni hao,如果是2,则输出zai jian,如果是其他,输出hello
3、for循环
语法:for ((初始值;循环控制条件;变量变化))
do
程序
done
范例:从1加到100
语法2:for 变量 in 值1 值2 值3…
do
程序
done
范例:打印所有输入参数(观察 ∗ 与 *与 ∗与@的区别)
- 使用$*
- 使用$@
总结:由上图可以看出" ∗ " 将 所 有 参 数 看 做 一 个 整 体 输 出 , 只 循 环 一 次 ; 而 " *"将所有参数看做一个整体输出,只循环一次;而" ∗"将所有参数看做一个整体输出,只循环一次;而"@"将输出参数分开输出,执行三次循环。
4、while循环
语法: while [条件判断式]
do
程序
done
范例:从1加到100