if else 语句
如果没有判断条件不要写,比如else后面不需要执行任何命令,在其他语言例如java、php中不写不会报错,但是shell中不允许
单分支
if 条件
then
执行代码
fi
可以写做一行只要每个语句后面加上分号“ ; ”就可以,如下
if 条件;then 执行代码;fi
双分支
if 条件
then
执行代码
else
执行代码
fi
多分支
if 条件
then
执行代码
elif 条件2
then
执行代码
else
执行代码
fi
例子:判断两个变量是否相等
a=1
b=2
if [ $a == $b ]
then
echo "a 等于 b"
elif [ $a -gt $b ]
then
echo "a 大于 b"
elif [ $a -lt $b ]
then
echo "a 小于 b"
else
echo "没有符合的条件"
fi
输出结果:
a 小于 b
case语句
case 变量引用 in
条件1)
分支1
;;
条件2)
分支2
;;
esac
例子:
echo 请输入1,2,3任一数字:
echo 您输入的数字为:
read num
case $num in
1) echo 您输入了1
;;
2) echo 您输入了2
;;
3) echo 您输入了3
;;
*) echo 请输入1,2,3中的任一数字
;;
esac
for循环
#第一种格式
for i in 1 2 3 4 5
do
echo "第一种格式:$i"
done
#第二种格式
for((i=1;i<=5;i++))
do
echo "第二种格式:$i"
done
执行结果:
第一种格式:1
第一种格式:2
第一种格式:3
第一种格式:4
第一种格式:5
第二种格式:1
第二种格式:2
第二种格式:3
第二种格式:4
第二种格式:5
while语句
var=1
while(($var<=5))
do
echo $var
let var++
done
执行结果:
1
2
3
4
5
无限循环
#第一种
while :
do
执行代码
done
#第二种
while true
do
执行代码
done
#第三种
for((;;))
do
执行代码
done
until循环
循环判断直到条件满足时停止,与while类似
a=0
echo "以下为until执行结果"
until [ ! $a -lt 5 ]
do
echo $a
a=`expr $a + 1`
done
#下面用while方式的代码和until执行结果完全相同
echo "以下为while执行结果"
b=0
while(($b<5))
do
echo $b
b=`expr $b + 1`
done
执行结果:
以下为until执行结果
0
1
2
3
4
以下为while执行结果
0
1
2
3
4
循环控制break和continue
break退出循环
continue继续当前轮的循环