Bash 的 if 条件语句

作者:hubenchang0515日期:2025/11/7

#Bash 的 if 条件语句

Bash 的 if 条件语句的语法为:

1if 条件命令 2then 3 命令 4 ... 5elif 条件命令 6then 7 命令 8 ... 9else 10 命令 11 ... 12fi 13

其中,条件命令返回成功(0)时为真(true),返回失败(非 0)时为假(false)。

如果省略(部分)换行,则需要使用分号(;)区分:

1if 条件命令; then 命令; 命令; elif 条件命令; then 命令; 命令; else 命令; 命令; fi 2

示例:

1if test "$SHELL" = "/bin/bash" 2then 3 echo 很好 4else 5 echo 完蛋 6fi 7
  • 判断变量 SEHLL 的值是否是 /bin/bash

注意,这里的 "$SHELL" = "/bin/bash" 不要省略引号写成 $SHELL = /bin/bash;否则变量 SHELL 为空时会产生语法错误。

  • = - 判断字符串相等
  • != - 判断字符串不同

#test 命令

如上述示例代码,Bash 的条件一般使用 test 命令,格式为:

1test 条件表达式 2 3[ 条件表达式 ] # 不可省略空格 4 5[[ 条件表达式 ]] # 不可省略空格 6
  • test[ 是等价的,它们既是 Bash 的内置命令,也是可执行文件
  • [[ 是 Bash 的关键字,额外支持正则判断

test 命令的常用选项如下:

  • -e - 文件存在
  • -f - 文件存在且是普通文件
  • -d - 文件存在且是目录
  • -b - 文件存在且是块设备
  • -c - 文件存在且是字符设备
  • -L - 文件存在且是符号链接
  • -eq - 等于(只能用于整数,下同)
  • -ne - 不等于
  • -lt - 小于
  • -le - 小于或等于
  • -gt - 大于
  • -ge - 大于或等于

例如:

1FILE="$0" 2 3if [ -f $FILE ]; then 4 echo $FILE 是普通文件 5elif [ -e $FILE ]; then 6 echo $FILE 不是普通文件 7else 8 echo $FILE 文件不存在 9fi 10

运行代码

Establishing WebAssembly Runtime.

Standby.

Powered by Shift.

#true 和 false

Bash 的内置命令中包含 truefalse 两个命令,前者直接返回成功(0),后者直接返回失败(1)。


Bash 的 if 条件语句》 是转载文章,点击查看原文


上一篇:下一篇:

最近更新


上一篇:下一篇: