企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 条件测试类型 * 整数测试 * 字符测试 * 文件测试 返回值为true或者false ### 条件比较测试表达式 ~~~ [ expression ] [[ expression ]] test expression ~~~ ## 整数比较 ~~~ -eq:= -ne:!= -gt:> -lt:< -ge:>= -le:<= ~~~ ## 文件测试 ### 存在性测试 ~~~ -e file 是否存在 -f file 是否为普通文件 -d file 是否为目录 ~~~ ### 权限测试 ~~~ -r file 指定文件对当前用户是否可读 -w file 指定文件对当前用户是否可写 -x file 指定文件对当前用户是否可执行 -u file 当前用户是否是文件的属主 -g file 当前用户是否是文件的属组 ~~~ ### 文件大小测试 ~~~ -s file 文件存在且非空 ~~~ ## 字符测试 `[[ ]]`或者`[ ]`都可以 ### 等值比较 `=`或者`==`,**注意**:等号两端要有空格 ### 不等比较 `!=`,**注意**:等号两端要有空格 ### 是否为空测试 ~~~ -z string:测试字符串是否为空,空为真; -n string:测试字符串是否不为空,不空为真; ~= 左侧的字符串能否被右侧的PATTERN所匹配 ~~~ ## 组合条件测试 ### 方式1 ~~~ COMMAND1 && COMMAND2 COMMAND1 || COMMAND2 ! COMMAND1 ~~~ ### 方式2 ~~~ [ EXPRESSION1 -a EXPRESSION2 ] [ EXPRESSION1 -o EXPRESSION2 ] [ ! EXPRESSION1 ] ~~~ ### 样例 传递一个用户名参数给脚本,判断此用户的用户名跟其基本组的组名是否一致,并将结果显示出来。 ~~~bash #!/bin/bash if [ $# -ne 1 ]; then echo "Please enter a argument." exit 1 elif ! id $1 &> /dev/null; then echo "No such user." exit 2 elif [ $1 == $(id $1 -g -n) ]; then echo "Same." else echo "Diffrent." fi ~~~