shell 判断_Shell文件判断,布尔运算,逻辑运算

文件判断

测试符描述示例
-e文件或目录存在为真[ -e path ] path 存在为 true
-f文件存在为真[ -f file_path ] 文件存在为 true
-d目录存在为真[ -d dir_path ] 目录存在为 true
-r有读权限为真[ -r file_path ] file_path 有读权限为 true
-w有写权限为真[ -w file_path ] file_path 有写权限为 true
-x有执行权限为真[ -x file_path ] file_path 有执行权限为 true
-s文件存在并且大小大于 0 为真[ -s file_path ] file_path 存在并且大小大于 0 为 true
#!/bin/bash
F="/tmp"
[ -f $F ] && echo "${F}是文件" || echo "${F}不是文件"
[ -d $F ] && echo "${F}是目录"|| echo "${F}不是目录"
[ -e $F ] && echo "${F}存在"  || echo "${F}不存在"
[ -r $F ] && echo "${F}可读"  || echo "${F}不可读"
[ -w $F ] && echo "${F}可写"  || echo "${F}不可写"
[ -x $F ] && echo "${F}可执行"  || echo "${F}不可执行"
[ -s $F ] && echo "${F}文件存在大小不为0"  || echo "${F}不存在或者大小为0"

布尔运算

运算符描述示例
!非关系,条件结果取反[ ! 1 -eq 2 ]为true
-a和关系,在[]表达式中使用[ 1 -eq 1 -a 2 -eq 2 ]为true
-o或关系,在[]表达式中使用[ 1 -eq 1 -o 2 -eq 1 ]为true
#!/bin/bash
A=2
B=2
C=3
D=3
if [ $A -eq $B -a $C -eq $D ];then
   echo "yes"
else
   echo "no"
fi

C=4

if [ $A -eq $B -o $C -eq $D ];then
   echo "yes"
else
   echo "no"
fi

逻辑运算

判断符描述示例
&&逻辑和,在[[]]和(())表达式中 或判断表达式是否为真时使用[[ 1 -eq 1 && 2 -eq 2 ]]为 true (( 1 == 1 && 2 == 2 ))为true
[ 1 -eq 1 ] && echo yes 如果&&前 面表达式为 true 则执行后面的
||逻辑或,在[[]]和(())表达式中 或判断表达式是否为真时使用[[ 1 -eq 1 || 2 -eq 1 ]]为 true (( 1 == 1 || 2 == 2 ))为true
[ 1 -eq 2 ] || echo yes 如果||前 面表达式为 false 则执行后面的
#!/bin/bash
A=2
B=2
C=3
D=3
if [[ $A == $B && $C == $D ]];then
   echo "yes"
else
   echo "no"
fi

C=4

if [[ $A == $B || $C == $D ]];then
   echo "yes"
else
   echo "no"
fi  
  • 单括号[-a等价于双括号[[中的&&,逻辑与
  • 单括号[-o等价于双括号[[中的||,逻辑或
  • 单括号[-eq等价于双括号[[中的==,等于号

405b9ba0bd2bb15d77d07417fdf3d9f4.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值