test 条件判断
# 符号 [ ] 等同 test命令
test 10 -lt 5 # 判断大小 echo $? # 查看上句test命令返回状态 # 结果0为真,1为假 test -n "hello" # 判断字符串长度是否为0 [ $? -eq 0 ] && 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 != # 不等于