旧游无处不堪寻
无寻处,惟有少年心
Shell(三)

本篇,我们来讲讲 Shell 中的五大运算,为接下来要讲解的流程语句和函数做准备。

数学比较运算

数学比较运算有如下参数:

  • eq: equal
  • ne: not equal
  • gt: greater than
  • lt: less than
  • ge: greater than or equal
  • le: less than or equal
INTEGER1 [-eq | -ne | -gt | -lt | -ge | -le] INTEGER2

字符串比较运算

字符串比较运算符有如下四种:

  • ==: 检查字符串是否相同
  • !=: 检查字符串是否不同
  • z: 检查字符串长度是否为 0
  • n: 检查字符串长度是否不为 0
STRING1 [== | !=] STRING2
[-z | -n] STRING

文件比较与检查

文件比较与检查有如下参数:

  • d: 检查文件是否存在且为目录
  • f: 检查文件是否存在且为文件
  • e: 检查文件是否存在且为文件或目录
  • r: 检查文件是否存在且可读
  • w: 检查文件是否存在且可写
  • x: 检查文件是否存在且可执行
  • s: 检查文件是否存在且部位空
  • O: 检查文件是否存在且被当前用户拥有
  • G: 检查文件是否存在且被当前用户组拥有
[-d | -f | -e | -r | -w | -x] 路径

逻辑运算

与其他编程语言一样,逻辑运算符有以下三种:

  • &&: 逻辑与运算
  • ||: 逻辑或运算
  • !: 逻辑非运算

赋值运算

与其他编程语言一样,= 表示赋值运算符,需要注意,等号两边不能有空格。