#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 的内置命令中包含 true 和 false 两个命令,前者直接返回成功(0),后者直接返回失败(1)。
《Bash 的 if 条件语句》 是转载文章,点击查看原文。