Bash 支持 if-else 语句,以便你可以在 shell 脚本中使用逻辑推理。
通用的 if-else 语法如下:
if [ expression ]; then
## 如果条件为真则执行此块,否则转到下一个
elif [ expression ]; then
## 如果条件为真则执行此块,否则转到下一个
else
## 如果以上条件都不成立,则执行此块
fi
正如你所注意到的:
elif
用于 “否则如果” 类型的条件。- if-else 条件始终以
fi
结尾。 - 使用分号
;
和then
关键字
在展示 if 和 else-if 的示例之前,我先分享一下常见的比较表达式(也称为测试条件)。
测试条件
以下是可用于数字比较的测试条件运算符:
条件 | 当满足以下条件时为真 |
|
|
|
|
|
|
|
|
|
|
|
|
如果你要比较字符串,可以使用以下测试条件:
条件 | 当满足以下条件时为真 |
|
|
|
|
|
|
|
|
文件类型检查也有条件:
条件 | 当满足以下条件时为真 |
|
|
|
|
|
|
现在你已经了解了各种比较表达式,让我们在各种示例中看看它们的实际应用。
在 Bash 中使用 if 语句
让我们创建一个脚本来告诉你给定的数字是否为偶数。
这是我的脚本,名为even.sh
:
#!/bin/bash
read -p "Enter the number: " num
mod=$(($num%2))
if [ $mod -eq 0 ]; then
echo "Number $num is even"
fi
当模数运算(%
)整除给定数字(本例中为 2)时,它返回零。