目录

Bash脚本之不完全开发指南

记录常用的 Bash 脚本开发功能。

1 条件测试命令

Bash 中常用的条件测试命令,包括文件状态、逻辑运算、字符串及数值测试

1.1 文件状态测试:

用法:

if [ 参数 文件名/目录名 ]; then
    ... ...
fi

上方的参数可以是:

  • -d:目录是否存在
  • -f:文件是否存在
  • -L:是否为符号链接
  • -s:文件长度大于0,且非空
  • -r:文件可读
  • -w:文件可写
  • -x:文件可执行
  • -u:文件有suid位设置

1.2 逻辑操作符:

用法:

if [ 数值1 -a 数值2 ]; then
    ... ...
fi

if [ 数值1 -o 数值2 ]; then
    ... ...
fi

if [ !数值1 ]; then
    ... ...
fi

说明:

  • -a: 逻辑与
  • -o: 逻辑或
  • !: 逻辑非

1.3 字符串测试

用法:

if [ 字符串1 = 字符串2 ]; then
    ... ...    # 两个字符串相等
fi

if [字符串1 != 字符串2 ]; then
    ... ...    # 两个字符串”不相等“
fi

if [ -z 字符串 ]; then
    ... ...    # 字符串”为空“
fi

if [ -n 字符串 ]; then
    ... ...    # 字符串”非空“
fi

1.4 数值测试

用法:

if [ 数值1 比较参数 数值2 ]; then
    ... ...
fi

其中比较参数可以是:

  • -eq:两个数相等(equal to)
  • -ne:两个数不相等(not equal to)
  • -gt:前者大于后者(greater than)
  • -lt:前者小于后者(less than)
  • -ge:前者大于或等于后者(greater than or equal to)
  • -le:前者小于或等于后者(less than or equal to)