自学内容网 自学内容网

【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)!