Bash if-else语句
if-else
语句同if
用于在代码语句的顺序执行流程中执行条件任务。当判断为true
,执行第一组给定的代码语句。当判断为false
,执行另一组给定的代码语句。
基础
语法:
if [ condition ];
then
<if block commands>
else
<else block commands>
fi
注:
- condition 是条件语句。
- block commands 是给定的执行语句。
- 可以使用一组以逻辑运算符连接的一个或多个条件。
- 其他块命令包括一组在条件为false
时执行的代码语句。
- 条件表达式后的分号;
是必须的。
示例:
#!/bin/bash
#when the condition is true
if [ 10 -gt 3 ];
then
echo "10 is greater than 3."
else
echo "10 is not greater than 3."
fi
#when the condition is false
if [ 3 -gt 10 ];
then
echo "3 is greater than 10."
else
echo "3 is not greater than 10."
fi
执行后得到以下结果:
10 is greater than 3.
3 is not greater than 10.
单行编写
您可以在一行中编写完整的if-else
语句以及命令。需要遵循以下规则:
- 在
if
和else
的语句末尾使用;
。 - 使用空格作为分隔符以此追加其他语句。
示例:
#!/bin/bash
read -p "Enter a value:" value
if [ $value -gt 9 ]; then echo "The value you typed is greater than 9."; else echo "The value you typed is not greater than 9."; fi
执行后得到以下结果:
Enter a value:3
The value you typed is not greater than 9.
嵌套语句
同if
语句的嵌套一样,if-else
语句也能够嵌套使用。如下示例:
#!/bin/bash
read -p "Enter a value:" value
if [ $value -gt 9 ];
then
if [ $value -lt 11 ];
then
echo "$value>9, $value<11"
else
echo "The value you typed is greater than 9."
fi
else echo"The value you typed is not greater than 9."
fi
执行后得到以下结果:
Enter a value:5
The value you typed is not greater than 9.