六. 流程判断
6.1 if 判断
使用格式
#格式一
if [ 条件判断式 ]
then
语句
fi
或者
if [ 条件判断式 ];then
语句
fi
#格式二
if [ 条件判断式 ]
then
语句
elif [ 条件判断式 ]
then
语句
else
语句
fi
基础案例
#编辑if.sh
#!/bin/bash
if [ 4 -gt 3 ];then
echo true
else
echo false
fi
./if.sh
#输出
true
if判断案例
#!/bin/bash
if [ $# -gt 1 ]
then
if [ $1 -gt $2 ]
then
echo $1 is bigger
elif [ $1 -lt $2 ]
then
echo $2 is bigger
else
echo $2 equal $1
fi
else
echo args too less
fi
./if.sh 1 3
#输出
3 is bigger
./if.sh
#输出
args too less
6.2 case 判断
使用格式
case $1 in
条件1)
语句
;;
条件2)
语句
;;
*)
其他情况
;;
esac
基础案例
#编辑文件 case.sh
#!/bin/bash
if [ $# -le 0 ]
then
echo args is less
exit 1
fi
echo arg num is $#,arg1 is $1
case $1 in
1)
echo arg is 1
;;
2)
echo arg is 2
;;
*)
echo arg is $1
;;
esac
./case.sh 8
#输出
arg num is 1,arg1 is 8
arg is 8
./case.sh 3
#输出
arg num is 1,arg1 is 3
arg is 3
6.3 for 循环
使用格式
#格式一
for i in $@
do
echo $i
done
#格式二
for ((i=1;i<=5;i++))
do
echo $i
done
基本案例
#编辑for.sh文件
#!/bin/bash
echo arg num is $#.
for i in $@
do
echo $i
done
./for.sh 1 2 3 4 5 6
#输出
arg num is 6.
1
2
3
4
5
6
6.4 until 循环
使用格式
until 条件
do
语句
done
基本案例
#编辑 until.sh
#!/bin/bash
i=1
sum=0
#until中条件为true就退出
#直到i大于10就退出,意思是这里i为11就退出
until [ $i -gt 10 ]
do
sum=$[$i+$sum]
let i++
done
echo $sum
./until.sh
#输出
55
6.5 while 循环
使用格式
while 条件
do
语句
done
基本案例
#!/bin/bash
i=1
sum=0
#while中条件为false就退出
#当i小于等于10就执行循环语句,意思是这里i为11就退出
while [ $i -le 10 ]
do
sum=$[$i+$sum]
let i++
done
echo $sum