在Bash Shell脚本中使用IF、ELSE和ELSE IF
时间:2019-05-19 01:26:30 来源:igfitidea点击:
IF, ELSE或 ELIF(在其他编程中称为 ELSE IF)是用于执行不同程序的条件语句,取决于输出的真或假。
所有if语句都以 then关键字开始,以 fi关键字结束。
定义条件有两种方法,一种是使用 test关键字(如:if test < condition >),另一种是使用括号(如:if [condition])。
1。Bash if语句
当我们只有一个程序要执行时,单个if语句非常有用。
if [ condition ]
then
<code block>
fi
例如,如果我们需要检查输入值是否等于10。
如果value等于10,那么它将打印“i的值是 10”,但如果不是,什么都不会打印。
#!/bin/bash
read -p "输入i的值 :" i
if [ $i -eq 10 ]
then
echo "i的值是 10"
fi
2。Bash if else语句
如果我们有两个程序要执行,并且只需要根据if条件的结果执行其中一个,那么if else语句就很有用。
if [ condition ]
then
<code block>
else
<code block>
fi
例如,如果输入取的值是10,那么它将打印“i的值是 10”,如果不是,程序将执行else块语句并打印“i的值不是10”。
#!/bin/bash
read -p "输入i的值:" i
if [ $i -eq 10 ]
then
echo "i的值是10"
else
echo "i的值不是10"
fi
3。Bash if elif语句
如果有两个以上的程序要执行,并且根据if和elif条件的结果只需要执行一个程序,那么if elif和else语句非常有用。
if [ condition ]
then
<code block>
elif [ condition ]
then
<code block>
else
<code block>
fi
例如,下面的例子将检查输入值如果等于5,如果它真的,那么程序将打印我的价值是5,否则程序将去elif语句在一个条件将检查和基于这些结果elif或elase块的代码将被执行。
#!/bin/bash
read -p "请输入i :" i
if [ $i -eq 5 ]
then
echo "i的值是5"
elif [ $i -eq 10 ]
then
echo "i的值是10"
else
echo "i的值不是 5 和 10"
fi
4。Bash elif梯形语句
这与上面一个相似,我们将多个elif语句添加在一起。
当我们有多个程序要执行,并且只需要根据if和elif条件的结果执行一个程序时,elif (else 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 "请输入i :" i
if [ $i -eq 5 ]
then
echo "i的值是5"
elif [ $i -eq 10 ]
then
echo "i的值是10"
elif [ $i -eq 20 ]
then
echo "i的值是20"
elif [ $i -eq 30 ]
then
echo "i的值是 30"
else
echo "i的值不等于5,10,20 或 30"
fi
5。Bash嵌套if语句
嵌套的if在根据外部条件的结果检查一个条件的情况下有用。
if [ condition ]
then
if [ condition ]
then
<code block>
else
<code block>
fi
else
if [ condition ]
then
<code block>
fi
fi
例如下面的小shell程序是为了寻找用户输入的3个值之间的最大值。
这个程序将只处理数值。
如果两个值相似,则只打印一个值。
#!/bin/bash
read -p "请输入i :" i
read -p "请输入j :" j
read -p "请输入k :" k
if [ $i -gt $j ]
then
if [ $i -gt $k ]
then
echo "i 最大"
else
echo "k 最大"
fi
else
if [ $j -gt $k ]
then
echo "j 最大"
else
echo "k 最大"
fi
fi

