与文件存在与否的判断
-e 是否存在
-f 是否为普通文件
-d 是否为目录
-s 是否为空的文件
-p 是否为管道文件
-b 是否为块设备文件
-c 是否为字符设备文件
-L 是否为软链接
-S 是否Socket文件
与文件权限有关的判断
-r 是否有可读的权限
-w 是否有可写的权限
-x 是否有可执行权限
-u 是否有特权位
-g 是否有组特权位
-k 是否有t位,即粘贴位
两个文件的比较判断
-nt 比较file1比file2新
-ot 比较file1比file2旧
-ef 比较file1和file2是否为同一个文件,
一般用于判断硬链接
整数之间的大小判断
-eq 相等
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
字符串之间的判断
-z 是否为空字符串
-n 是否为非空字符串
str1 = str2 是否相等
str1 != str2 是否不等
多重条件判断
-a 两个条件同时满足,就为真,相当于and
-o 两个条件满足其一,就为真,相当于or
如果使用 [[ ]], 则多重判断可以使用:
[[ xxx && xxx || xxx ]] 的形式.
特殊变量列表
变量 | 含义 |
---|
$0 | 当前脚本的文件名 |
$n | 传递给脚本或函数的参数。n
是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 |
$# | 传递给脚本或函数的参数个数。 |
$* | 传递给脚本或函数的所有参数。 |
$@ | 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。 |
$? | 上个命令的退出状态,或函数的返回值。 |
$$ | 当前Shell进程ID。对于
Shell 脚本,就是这些脚本所在的进程ID。 |