摘要:介绍shell编程的条件判断式和流程语句及其举例说明
一 条件判断式
条件判断格式
test 判断式
[ 判断式 ]
1.按文件类型判断
eg: 判断文件是否存在 [ -e file ] && echo yes || echo no ($?参数传递)
2.按文件权限判断
3.
文件比较
4.整数比较
5.字符串判断
6.多重条件判断
二 流程控制
1.单分支if
if [ 条件判断式 ];then
程序
fi
或
if [ 条件判断式]
then
程序
fi
2.双分支if
if [ 条件判断式 ]
then
条件成立执行程序
else
条件不成立执行程序
fi
3.多分支if
if [ 条件判断式1 ]
then
程序1
elif [ 条件判断式2 ]
then
程序2
.......
else
当所有条件不成立,执行程序3
fi
4.多分支case
case $变量名 in
"值1")
如果变量值等于值1,则执行程序1
;;
"值2")
如果变量值等于值2,则执行程序2
;;
......
*)
如果不是上面值,则执行此程序
;;
esca
5.for循环
for 变量 in 值1 值2 值3 值4 ... 值n #循环n次,每次执行把后面值赋给变量(可以赋予含n个值的文件)
do
程序
done
或
for ((初始值;循环条件;变量变化)) #类似c语法,但不能用变量变化i(变量)++不被识别
do
程序
done
6.while循环
while [ 条件判断式 ] #满足条件判断式则一直执行
do
程序
done
7.until循环
until [ 条件判断式 ] #满足条件判断式则跳出
do
程序
done
以下为流程控制语句eg
eg1:
![](https://img-blog.csdn.net/20161107132337859?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
eg2:
![](https://img-blog.csdn.net/20161107132354594?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
eg3:
![](https://img-blog.csdn.net/20161107132411985?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20161107132431953?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
eg4:
![](https://img-blog.csdn.net/20161107132456297?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
eg5:
![](https://img-blog.csdn.net/20161107132600173?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20161107132536658?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20161107132516657?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
eg6:此处程序可用 但留有问题 #注释 待解决 (如有朋友看到问题并知道原因希望帮帮忙 查了几天还是不清楚原因 先放着)
![](https://img-blog.csdn.net/20161107133322551?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20161107133358379?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20161107133417044?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
以下为流程控制语句eg
eg1:
eg2:
eg3:
eg4:
eg5:
eg6:此处程序可用 但留有问题 #注释 待解决 (如有朋友看到问题并知道原因希望帮帮忙 查了几天还是不清楚原因 先放着)