Shell逻辑判断、分支语句(带案例,Shell脚本学习笔记)

逻辑语法:

if [ 判断条件  ] ; then

    ....

elif [ 判断条件 ]; then

    ....

else

    ....

fi

(其中fi是结束标志) 

扫描二维码关注公众号,回复: 14838173 查看本文章

踩坑提醒:

  • 大括号里面写条件判断前,前后都要空一格,比如 ,错误写法:[$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

如喜欢,欢迎点赞、收藏哦~

猜你喜欢

转载自blog.csdn.net/calm_programmer/article/details/127829279