shell if多个条件判断_shell条件判断

bed733238809f697dcec55ab3a0b4224.png

shell 开头

  • 以sh后缀
  • 开头#注释,表明采用何种解释器
#!/bin/bash <

文件权限

$ ll total 4-rw-r--r-- 1 root root 88 Apr 24 22:15 demo.sh
  • 其中可以看到,demo.sh没有可执行权限;但是 bash demo.sh可以运行
 $ ./demo.sh -bash: ./demo.sh: Permission denied $ bash ./demo.sh shell demo
$ chmod 755 ./demo.sh # or$ chmod u+x ./demo.sh  # 给当前拥有者添加可执行权限$ ll -rwxr--r-- 1 root root 88 Apr 24 22:15 demo.sh

条件判断

字符串非空

  • n 测试是否为非空,推荐""
$ [ -n "$TEST" ] && echo Y || echo FY
  • z 测试是否为空
 $ [-z $TEST] && echo Y

字符串比较

$ [ $USER == root ]# or $ test $USER == root

整数比较

  • -gt
  $ [ 1 -gt 2 ]; echo $?  1  # $? 查看上一条命令结束码;0 正确 非0,false
  • -eq
  • -ne
  • -lt
  • -le
  • -ge (大于或等于)

文件属性判断

  • -e 文件或者目录是否存在
$ [ -e get.sh ] && echo "存在" || echo "不存在"存在
  • -d 判断存在且为目录
  • -f
  • -L 软连接 (类似快捷键,跨分区,但是删除不可用;硬链接,相反;)
  • -p 管道
  • -r 读权限
  • -w 写权限
  • -x 执行权限;root 也必须有x,才能执行
  • -s 非空

[] 与 [[]]

  • 通用
  • 数值大小比较
  $ [ 5 -gt 8 ]  $ [[ 5 -lt 8  ]]
  • 字符串非空比较
 $ [ -z "" ] && echo y || echo n   y  $ [ -n '13' ] && echo y || echo n   y 
  • 文件属性
  $ [ 9.txt -nt get.sh ] && echo y || echo n  $ [[ 9.txt -nt get.sh ]] && echo y || echo n
  • 不同
  • 逻辑运算&&
 $ [[ 5 == 9 && 5 == 4 ]] && echo y || echo n  n # []使用&&  $[ 5 == 9 && 5 == 4 ] && echo y || echo n -bash: [: missing `]' $[ 5 == 9 -a 5 == 4 ] && echo y || echo n n 
  • 逻辑运算||
 $[[ 5 == 8 || 6 == 9 ]] $[ 5 == 8 -o 6 == 9 ]
  • 符号使用>,<
 $[[ 5 > 9 ]] - 排序比较  $[ 5 > 9 ] - 部分支持
  • 正则使用
 # 仅仅是字符比较  $ test = '123'  $ [ $test == 1* ] && echo y || echo n   n    # 正则比较  $ [[ $test == 1* ]] && echo y || echo n   y  # a是否为数字  $ a=2   $[[ $a == [0-9] ]]&& echo y || echo n   y
  • =~
 #  正则匹配,是否包含0-9$b='a23'$[[ $b =~ [0-9] ]]&& echo y || echo n y
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值