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 脚本中常见的基本工具,帮助编写健壮和灵活的脚本。
957

被折叠的 条评论
为什么被折叠?



