test 条件判断

# 符号 [ ] 等同  test命令

test  -lt        # 判断大小
echo $? # 查看上句test命令返回状态 # 结果0为真,1为假
test -n "hello" # 判断字符串长度是否为0
[ $? -eq ] && echo "success" || exit   # 判断成功提示,失败则退出

expression为字符串操作

-n str   # 字符串str是否不为空
-z str # 字符串str是否为空

  expression 为文件操作

-a     # 并且,两条件为真
-b # 是否块文件
-p # 文件是否为一个命名管道
-c # 是否字符文件
-r # 文件是否可读
-d # 是否一个目录
-s # 文件的长度是否不为零
-e # 文件是否存在
-S # 是否为套接字文件
-f # 是否普通文件
-x # 文件是否可执行,则为真
-g # 是否设置了文件的 SGID 位
-u # 是否设置了文件的 SUID 位
-G # 文件是否存在且归该组所有
-w # 文件是否可写,则为真
-k # 文件是否设置了的粘贴位
-t fd # fd 是否是个和终端相连的打开的文件描述符(fd 默认为 1)
-o # 或,一个条件为真
-O # 文件是否存在且归该用户所有
! # 取反

  expression 为整数操作

expr1 -a expr2   # 如果 expr1 和 expr2 评估为真,则为真
expr1 -o expr2 # 如果 expr1 或 expr2 评估为真,则为真

  两值比较

整数     字符串
-lt < # 小于
-gt > # 大于
-le <= # 小于或等于
-ge >= # 大于或等于
-eq == # 等于
-ne != # 不等于
05-11 03:30