【Shell】常见的 Shell 条件测试选项和控制命令的总结和整理
1. 字符串比较
-z "$var"
: 判断字符串是否为空,长度为 0 时返回true
。-n "$var"
: 判断字符串是否非空,长度大于 0 时返回true
。"$var" = "$var2"
: 判断两个字符串是否相等。"$var" != "$var2"
: 判断两个字符串是否不相等。
2. 文件判断
-e "/path/to/file"
: 判断文件或目录是否存在。-f "/path/to/file"
: 判断是否为普通文件。-d "/path/to/dir"
: 判断是否为目录。-r "/path/to/file"
: 判断文件是否可读。-w "/path/to/file"
: 判断文件是否可写。-x "/path/to/file"
: 判断文件是否可执行。
3. 数字比较
-eq
: 判断两个数字是否相等。if [ "$num1" -eq "$num2" ]; then echo "Numbers are equal" fi
-ne
: 判断两个数字是否不相等。-gt
: 判断第一个数字是否大于第二个数字。-lt
: 判断第一个数字是否小于第二个数字。-ge
: 判断第一个数字是否大于或等于第二个数字。-le
: 判断第一个数字是否小于或等于第二个数字。
4. 逻辑操作
!
: 逻辑非,用于取反。if [ ! -e "/path/to/file" ]; then echo "File does not exist" fi
&&
: 逻辑与,用于组合条件。两个条件都为真时返回true
。if [ -f "/file" ] && [ -r "/file" ]; then echo "File exists and is readable" fi
||
: 逻辑或,用于组合条件。只要有一个条件为真时返回true
。
5. set -e
set -e
: 在 Shell 脚本中,如果任何命令返回非零状态(即执行失败),脚本将立即退出。这有助于防止脚本继续执行失败后的代码。
6. 示例
判断文件是否存在并可读:
if [ -f "/path/to/file" ] && [ -r "/path/to/file" ]; then
echo "File exists and is readable"
fi
检查变量是否为空:
if [ -z "$var" ]; then
echo "The variable is empty"
fi
检查 API 密钥是否设置:
if [ -z "$API_KEY" ]; then
echo "Error: API_KEY is not set."
exit 1
fi
判断数字大小:
if [ "$num1" -gt "$num2" ]; then
echo "$num1 is greater than $num2"
fi
总结
- 字符串判断:
-z
、-n
、=
、!=
- 文件判断:
-e
、-f
、-d
、-r
、-w
、-x
- 数字比较:
-eq
、-ne
、-gt
、-lt
、-ge
、-le
- 逻辑操作:
!
、&&
、||
- 控制脚本行为:
set -e
确保命令失败时立即退出脚本。
这些条件和控制选项是 Shell 脚本中常见的基本工具,帮助编写健壮和灵活的脚本。
原文地址:https://blog.csdn.net/weixin_44329069/article/details/143025869
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!