逻辑语法:
if [ 判断条件 ] ; then
....
elif [ 判断条件 ]; then
....
else
....
fi
(其中fi是结束标志)
踩坑提醒:
- 大括号里面写条件判断前,前后都要空一格,比如 ,错误写法:[$a = $b] ,正确写法:[ $a = $b ]
- Shell脚本是区分大小写的,不能把关键词如if、elif、echo写成IF、ELIF、ECHO
案例1:
输入一个字符,如果这个字符是y,输出right;如果这个字符是n输入wrong;否则就输出bad input
read -p "请输入一个字符:" c
if [ $c = 'y' ]; then
echo "right"
elif [ $c = 'n' ]; then
echo "wrong"
else
echo "bad input"
fi
案例2:输入一个数,并且判定它是否大于/等于/小于5
read -p "请输入一个数字:" num
if [ $num -gt 5 ]; then
echo "大于5"
elif [ $num -lt 5 ]; then
echo "小于5"
else
echo "等于5"
fi
>> 提示:数字判断运算符为:-gt(大于)、-lt(等于)、-ge(等于)、-ge(大于等于)、-le(小于等于)
案例3:
先判断输入的目录是否存在,如果存在,用ls显示它的文件和目录,否则提示:no such dir
read -p "输入一个目录名称:" dirname
if [ -d $dirname ]; then
ls $dirname
else
echo "no such dir"
fi
效果如下:
案例4:分支语句,case的运用
输入一个字符,如果输入A或a,显示4,如果输入B或b,显示3,如果输入C或c,显示2,其它则显示"输入不正确"
read -p "please input a char: " c
case $c in
'A' | 'a')
echo "4"
;;
'B' | 'b')
echo "3"
;;
'C' | 'c')
echo "2"
;;
*)
echo "输入不正确"
;;
esac
运行结果:
案例5:利用while循环,计算1-100数字之和
i=1
res=0
while [ $i -le 100 ]
do
res=$[$res+$i]
i=$[$i+1]
done
echo $res
如喜欢,欢迎点赞、收藏哦~