shell流程控制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/czh500/article/details/84782326

shell流程控制

if 判断

基本语法
if [ 条件判断式 ];then
程序
fi
或者
if [ 条件判断式 ]
then
程序
elif [条件判断式]

then
程序
fi

注意事项:(1)[ 条件判断式 ],中括号和条件判断式之间必须有空格 (2) 推荐使用第二种方式

应用实例

案例:请编写一个 shell 程序,如果输入的参数,大于等于 60,则输出 "及格了",如果小于 60, 则输出 "不及格"

#!/bin/bash

#案例:请编写一个 shell 程序,如果输入的参数,大于等于 60,则输出 "及格了",如果小于 60, 则输出 "不及格"
if [ $1 -ge 60 ]
then
        echo "及格了"
elif [ $1 -lt 60 ]
then
        echo "不及格"
fi

echo "-------------------------------"

if [ $1 -ge 60 ];then
  echo "分数ok"
elif [ $1 -lt 60 ];then
  echo "分数不ok"
fi

echo "-------------------------------"

if [ $1 -ge 60 ]
then
        echo "分数够了"
else
        echo "分数不够"
fi

注意:如果if [ $1 -ge 60 ] 和then写在同一行的话,记得要在[ $1 -ge 60 ]后面加上;分号,语法才不会报错,正确写法如下

if [ $1 -ge 60 ];then
还有一种写法也是正确的,就是不要把if [ $1 -ge 60 ]和then写在同一行,而是把then换行写,如果是把then换行写的话,

那if [ $1 -ge 60 ]后面就不用加;分号了

正确写法如下
if [ $1 -ge 60 ]
then

如下这种写法也是正确的,把then写到下一行,此时if [ $1 -ge 60 ]后面可以加;分号,也可以不加分号

if [ $1 -ge 60 ];

then

#!/bin/bash

#注意

#[ $1 -ge 60 ]后面不写;分号,并且then和if写在同一行,看看语法会不会报错(经过测试,语法会报错)
if [ $1 -ge 60 ] then
  echo "及格了,再接再厉"
elif [ $1 -lt 60 ] then
  echo "不及格,要加油哦"
fi

#正确的第1种写法如下,如果你想把if [ $1 -ge 60 ]和then放在同一行写,那就在[ $1 -ge 60 ]后加
#上;分号,如下

if [ $1 -ge 60 ];then
  echo "及格了,再接再厉"
elif [ $1 -lt 60 ];then
  echo "不及格,要加油哦"
fi


#正确的第2种写法如下,把then写到下一行,此时if [ $1 -ge 60 ]后面可以不用加;分号
if [ $1 -ge 60 ]
then
  echo "及格了,再接再厉"
elif [ $1 -lt 60 ]
then
  echo "不及格,要加油哦"
fi


#如下这种写法也是正确的,把then写到下一行,此时if [ $1 -ge 60 ]后面可以加;分号,也可以不加分号
if [ $1 -ge 60 ];
then
  echo "及格了,再接再厉"
elif [ $1 -lt 60 ];
then
  echo "不及格,要加油哦"
fi

#建议大家把这几种写法都试一试,我也是全部都是自己动手写了一遍,做个笔记,怕自己以后忘记,我记忆
#力不太好

猜你喜欢

转载自blog.csdn.net/czh500/article/details/84782326