shell test条件判断

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      !=        # 不等于
原文地址:https://www.cnblogs.com/sharesdk/p/8696105.html