Shell比较字符串、数值

1. 整数比较

操作符解释举例
-eq等于if [ "$a" -eq "$b" ]
-ne不等于if [ "$a" -ne "$b" ]
-gt 大于if [ "$a" -gt "$b" ]
-ge 大于等于if [ "$a" -ge "$b" ]
-lt小于if [ "$a" -lt "$b" ]
-le小于等于if [ "$a" -le "$b" ]
<小于(需要双括号)if (("$a" < "$b"))
<=小于等于(需要双括号)if (("$a" <= "$b"))
>大于(需要双括号)if (("$a" > "$b"))
>=大于等于(需要双括号)if (("$a" >= "$b"))

 2. 字符串比较

操作符

解释

举例

=

等于

if [ "$a" = "$b" ] 

==

等于

if [ "$a" == "$b" ]  与=等价

注意:==的功能在 [[]] 和 [] 中的行为是不同的,如下: 
       1)  [[ $a == z* ]]        # 如果$a以"z"开头(模式匹配)那么将为true 
       2)  [[ $a == "z*" ]]     # 如果$a等于z*(字符匹配),那么结果为true 
       3)  [ $a == z* ]          # 文件名替换(File globbing)和词分割(word splitting)将会发生 
       4)  [ "$a" == "z*" ]     # 如果$a等于z*(字符匹配),那么结果为true  

!= 

不等于if [ "$a" != "$b" ]   这个操作符将在[[]]结构中使用模式匹配
<

 小于

在ASCII字母顺序下.如:if [[ "$a" < "$b" ]]    if [ "$a" \&amp;amp;mp;ap;am;at; "$b" ] 
注意:在[]结构中"<"需要被转义
>大于在ASCII字母顺序下.如: 
       if [[ "$a" > "$b" ]] 
       if [ "$a" \> "$b" ] 
       注意:在[]结构中">"需要被转义

-z 

字符串为"null",长度为0
-n字符串不为"null"

字符串不为"null”

注意: 
       使用-n在[]结构中测试必须要用""把变量引起来,使用一个未被""的字符串来使用! -z 
       或者就是未用""引用的字符串本身,放到[]结构中。虽然一般情况下可 
       以工作,但这是不安全的。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值