Shell判断功能与比较符号

Bash提供了一些判断功能,使用Bash内置命令test即可实现测试工作或者使用[     测试表达式    ]

注意[   测试表达式  ]两边要留有空格



-h         FILE          是否为链接文件

-f           FILE        是否为普通文件

-b         FILE          是否为块设备文件

-c          FILE           是否为字符型文件

-a/-e    FILE    是否存在

-d  FILE            是否存在且为目录

-r          FILE       是否存在且可读

-w        FILE     是否存在且可写

-x          FILE     是否存在且可执行

-s           FILE       是否存在且非空


-n          STRING    字符串长度是否为非0

-z           STRING     字符串长度是否为0 



整数比较:

-eq  等于    -ne不等于

-ge   大于等于   -le  小于等于

-gt     大于          -lt  小于

比如if  [   "$a"  -eq   "$b"     ]


字符串比较:

STRING1         ==       STRING2                字符串相等

STRING1         !=      STRING2S              字符串不相等


[]   [[]]:

[[]]  支持正则表达式

用于判断数值的大小

[root@desktop30 tmp]# name=tangkai

[root@desktop30 tmp]# [ $name = tangkai ] 判断变量是否等于这个值

[root@desktop30 tmp]# echo  $?

0

[root@desktop30 tmp]# [ $name =  [Tt]angkai ] 如果只有一个[]号,系统会认为[Tt]angkai是字符

[root@desktop30 tmp]# echo  $?

1

[root@desktop30 tmp]# [[ $name =  [Tt]angkai ]]  在加一个[]号,[Tt]angkai才会被运算

[root@desktop30 tmp]# echo  $?

0




例子:

test    -d    /etc/passwd   &&  ehco  "Y"   ||   echo  "N"

[ -e   /etc/passwd   ]   &&  echo   "Y"          ||   echo  "N"

[ -z      $tt     ]             &&  echo  "Y"     ||  echo  "N"

[   22  -eq   22    ]    &&  echo  "Y"  ||     echo  "N"

[   22  -ge   32    ]    &&  echo  "Y"  ||     echo  "N"



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值