shell if判断常用参数

Grammar:

if 条件  # 条件为真,则条件返回0,进入then语句, 如果条件是函数,那么函数返回0则进入then语句

then 

command

else   # 或者 elif 条件

command

fi


Fast  IF example:

执行命令

[ $? != 0 ] && exit -1  #如果左边的表达式为真则执行右边的语句


Tips:

1) 不支持整数变量直接if,必须:if [ i –ne 0 ]

2) 支持字符串变量直接if,if [ str ] 如果字符串非0

3) 对字符串变量判定时,必须加引号,  if [ "$test" = "xxx" ]


Category:

[ -a FILE ] 如果 FILE 存在则为真。

[ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真, 比如: [ -b /dev/sda ] && echo "sda is a block device"

[ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。

[ -d FILE ] 如果 FILE 存在且是一个目录则为真。

[ -e FILE ] 如果 FILE 存在则为真。

[ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。

[ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真。

[ -u FILE ] 如果 FILE 存在且设置了SUID (set user ID)则为真。

[ -h FILE ]如果 FILE 存在且是一个符号连接则为真。

[ -L FILE ] 如果 FILE 存在且是一个符号连接则为真。

[ -k FILE ] 如果 FILE 存在且已经设置了粘制位则为真。

[ -p FILE ] 如果 FILE 存在且是一个名字管道(F如果O)则为真。

[ -r FILE ] 如果 FILE 存在且是可读的则为真。

[ -s FILE ]如果 FILE 存在且大小不为0则为真。

[ -t FD ]  如果文件描述符 FD 打开且指向一个终端则为真。

[ -w FILE ] 如果 FILE 如果 FILE 存在且是可写的则为真。

[ -x FILE ]如果 FILE 存在且是可执行的则为真。

[ -O FILE ] 如果 FILE 存在且属有效用户ID则为真。

[ -G FILE ] 如果 FILE 存在且属有效用户组则为真。

[ -S FILE ] 如果 FILE 存在且是一个套接字则为真。

[ -o OPTIONNAME ] 如果 shell选项 “OPTIONNAME” 开启则为真。

[ -z "STRING" ] STRING 的长度为零则为真。

[ "x$str1" = "x" ] str1的长度为零则为真

[ -n "STRING" ] or [ "STRING" ] "STRING" 的长度为非零 non-zero则为真。

[ "STRING1" = "STRING2" ] or [[ "STRING1" == "STRING2"]] 如果2个字符串相同,则为真。

[ "STRING1" != "STRING2" ]如果字符串不相等则为真。

[ "STRING1" < "STRING2" ]如果 “STRING1” 字典排序比 “STRING2” 小,则为真。

[ ARG1 OP ARG2 ] “OP” 是 -eq(相等), -ne(不相等), -lt(小于), -le(小于等于), -gt(大于) -ge(大于等于) 之一. 比如[ 1 -lt 2 ] 为真

[ EXPR1 -a EXPR2 ]如果 EXPR1 and EXPR2 全真则为真。

[ EXPR1 -o EXPR2 ]如果 EXPR1 或者 EXPR2 为真则为真。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值