bash中if的用法

教程 · 03-05 · 46 人浏览

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

以上中,当两个条件中有一个为真时,表达示为真

bash
Theme Jasmine by Kent Liao