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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值