Bash 基本语法
Bash 支持 if-else 语句,以便你可以在 shell 脚本中使用逻辑推理。
通用的 if-else 语法如下:
#!/bin/bash
if [ expression ]; then
## 如果条件为真则执行此块,否则转到下一个
elif [ expression ]; then
## 如果条件为真则执行此块,否则转到下一个
else
## 如果以上条件都不成立,则执行此块
fi
正如你所注意到的:
elif 用于 “否则如果” 类型的条件。
if-else 条件始终以 fi 结尾。
使用分号 ; 和 then 关键字
在展示 if 和 else-if 的示例之前,我先分享一下常见的比较表达式(也称为测试条件)。
条件 | 当满足以下条件时为真 |
---|---|
$a -lt $b | $a < $b($a 小于 $b) |
$a -gt $b | $a > $b($a 大于 $b) |
$a -le $b | $a <= $b($a 小于等于 $b ) |
$a -ge $b | $a >= $b ($a 大于等于 $b) |
$a -eq $b | $a == $b |
$a -ne $b | $a != $b |
例:
#!/bin/bash
if [ $a -lt 5 ]; then
echo "a小于5"
fi
注:“["后留空格,]之前也要留空格
比较字符串
条件 | 当满足以下条件时为真 |
---|---|
$a = $b | $a 与 $b 相同 |
$a == $b | $a 与 $b 相同 |
$a != $b | $a 与 $b 不同 |
-z $a | $a 为空字符串 |
例:
#!/bin/bash
if [ $a = "abc" ]; then
echo "a等于abc"
fi
多个条件对比时
使用&&和||符号进行AND和OR运算
例:
#!/bin/bash
if [[ $a != "abc" && $a != "bce" ]]; then
echo "a不等于abc,也不等于bce"
fi
以上中当个条件都为真是,表达示为真
#!/bin/bash
if [[ $a != "abc" || $a != "bce" ]]; then
echo "a不等于abc,也不等于bce"
fi
以上中,当两个条件中有一个为真时,表达示为真