在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