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