shell判断:数值、字符串、文件
(1)数值测试:
-eq 等于则为真。
-ne 不等于则为真。
-gt 大于则为真。
-ge 大于等于则为真。
-lt 小于则为真。
-le 小于等于则为真。
(2)字串测试:
= 等于则为真。
!= 不相等则为真。
-z字串 字串长度为0则为真。
-n字串 字串长度不为0则为真。
(3)文件测试:
test File1 ef File2 两个文件具有同样的设备号和i结点号
test File1 nt File2 文件1比文件2 新
test File1 ot File2 文件1比文件2 旧
test b File 文件存在并且是块设备文件
test c File 文件存在并且是字符设备文件
test d File 文件存在并且是目录
test e File 文件存在
test f File 文件存在并且是正规文件
test g File 文件存在并且是设置了组ID
test G File 文件存在并且属于有效组ID
test h File 文件存在并且是一个符号链接(同-L)
test k File 文件存在并且设置了sticky位
test b File 文件存在并且是块设备文件
test L File 文件存在并且是一个符号链接(同-h)
test o File 文件存在并且属于有效用户ID
test p File 文件存在并且是一个命名管道
test r File 文件存在并且可读
test s File 文件存在并且是一个套接字
test t FD 文件描述符是在一个终端打开的
test u File 文件存在并且设置了它的set-user-id位
test w File 文件存在并且可写
test x File 文件存在并且可执行
-e文件名 如果文件存在则为真。
-r文件名 如果文件存在且可读则为真。
-w文件名 如果文件存在且可写则为真。
-x文件名 如果文件存在且可执行则为真。
-s文件名 如果文件存在且至少有一个字符则为真。
-d文件名 如果文件存在且为目录则为真。
-f文件名 如果文件存在且为普通文件则为真。
-c文件名 如果文件存在且为字符型特殊文件则为真。
-b文件名 如果文件存在且为块特殊文件则为真。
另外,Linux还提供了与(!)、或(-o)、非(-a)三个逻辑操作符,用于将测试条件连接起来,其优先顺序为:!最高,-a次之,-o最低。
同时,bash也能完成简单的算术运算,格式如下:
$[expression]
例如:
var1=2
var2=$[var1*10+1]
则var2的值为21。