在bash shell脚本中的IF,ELSE和ELSE IF是如何工作的

IF,ELSE 或  ELIF(在其他编程里为  else if)是其中用于同一程序中不同的2个的执行依赖于输出真或假的条件语句。 所有if语句由 if 开始 然后是关键字和 fi 结束。 要定义条件有两种方式,一种是使用 test关键字(例如:如 test <条件>),第二是用方括号(即:if [条件])。

1. Bash if 语句

单 if 语句,执行一个程序是有用的。
if [ condition ]
then
    <code block>
fi
例如 - if 我们需要检查,if 输入值等于10与否。if 值等于10,那么它会打印出“我的值是10”,但if 不是,什么都不会被打印出来。
#!/bin/bash

read -p "Enter value of i :" i

if [ $i -eq 10 ]
then
    echo "Value of i is 10"
fi

2. Bash if else语句

if 我们有要执行的两种选择方案,并且只需要一个基础上,if 条件导致执行else语句是有用的。
if [ condition ]
then
    <code block>
else
    <code block>
fi
例如 - if 输入取值是10,则它会打印出“我的值是10”,if 没有程序将执行else块语句,并打印“价值的我不等于10”。
#!/bin/bash

read -p "Enter value of i :" i

if [ $i -eq 10 ]
then
    echo "Value of i is 10"
else
    echo "Value of i is not equal to 10"
fi

3. Bash if elif 声明

if 我们有执行两个以上的程序选择,只需要一个基础上,if 和 elif 的条件导致执行的 elif 和else语句是有用的。
if [ condition ]
then
    <code block>
elif [ condition ]
then
    <code block>
else
    <code block>
fi
例如 - 下面的例子将检查输入值,if 等于5,if 为真,那么程序将打印“我的值是5”,否则程序会去elif的语句,其中一个多个条件将被选中并基于这些结果的elif或elase的块代码就会被执行。
#!/bin/bash

read -p "Enter value of i :" i

if [ $i -eq 5 ]
then
    echo "Value of i is 5"
elif [ $i -eq 10 ]
then
    echo "Value of i is 10"
else
    echo "Value of i is not equal to 5 or 10"
fi

4.Bash elif 梯形声明

这类似于一个我们添加多个elif的语句与上面的东西。我们有执行多个程序而只需要一个基础上,if 和elif的条件导致执行elif的(否则if )梯形是有用的。
if [ condition ]
then
    <code block>

elif [ condition ]
then
    <code block>

elif [ condition ]
then
    <code block>

elif [ condition ]
then
    <code block>

else
    <code block>
fi
例如 -
#!/bin/bash

read -p "Enter value of i :" i

if [ $i -eq 5 ]
then
    echo "Value of i is 5"
elif [ $i -eq 10 ]
then
    echo "Value of i is 10"
elif [ $i -eq 20 ]
then
    echo "Value of i is 20"
elif [ $i -eq 30 ]
then
    echo "Value of i is 30"
else
    echo "Value of i is not equal to 5,10,20 or 30"
fi

5. 嵌套 if 语句

嵌套 if 是在一个条件将根据外条件下的结果进行检查的情况非常有用。
if [ condition ]
then
    if [ condition ]
    then
       <code block>
    else
       <code block>
    fi
else
    if [ condition ]
    then
       <code block>
    fi
fi
例如下面的小shell程序是寻找用户采取投入3值之间的最大的价值。这一方案将只数值工作。if 两个值是相似的,将打印只有一个值。
#!/bin/bash

read -p "Enter value of i :" i
read -p "Enter value of j :" j
read -p "Enter value of k :" k

if [ $i -gt $j ]
then
    if [ $i -gt $k ]
    then
        echo "i is greatest"
    else
        echo "k is greatest"
    fi
else
    if [ $j -gt $k ]
    then
        echo "j is greatest"
    else
	echo "k is greatest"
    fi
fi
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏