shell 运算符

字符串运算符

 运算符        说明                                                                                                                                  举例             
$ 检测字符串是否为空,不为空返回true [ $a ]
 -z 检测字符串长度是否为0,为0返回 true [ -z $a ]
 -n 检测字符串长度是否为0,不为0 返回 true [ -n $a ]

 

 

 

 

字符串关系运算符

 运算符        说明                                                                                                                                  举例             
 = 或 == 检测两个字符串是否相等,相等返回 true [ $a = $b ]
 != 检测两个字符串是否相等,不相等返回true [ $a != $b ]

 

 

 

 

  需要注意的一点是

#! /bin/bash

a=    # a=" " 时现象一致

# 判断是否为空
if [ $a ]
then
    echo "a is not null"
else
    echo "a is null"
fi

# 判断字符串长度是否为 0
if [ -z $a ]
then
    echo "a is zero"
fi

if [ -n $a ]
then
    echo "a is not zero"
fi 

  执行

$ ./demo.sh 
a is null
a is zero
a is not zero

  也就是说,只有当 字符串不为空的时候,判断字符串长度才有意义。

算数运算符

假定 a 为 20, b 为 10

 运算符        说明                                                                                                                                  举例                           
 +  加法

`expr $a + $b`

或 $(($a+$b))

或 $[$a+$b]

 -  减法

`expr $a - $b`

或  $(($a-$b))

或  $[$a-$b]

 *  乘法

`expr $a \* $b`

或 $(($a*$b))

或 $[$a*$b]

 /  除法

`expr $b / $a`

或 $(($b/$a))

或 $[$b/$a]

 %  取余

`expr $b % $a`

或 $(($b%$a))

或 $[$b%$a]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

数字关系运算符

假定 a 为 10, b 为 20

 运算符        说明                                                                                                                                  举例             
 -eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 false
 -ne 检测两个数是否不相等,不相等返回 true。 [ $a -ne $b ] 返回 true
 -gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false
 -lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true
 -ge 检测左边的数是否大于等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false
 -le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true

 

 

 

 

 

 

 

 

逻辑运算符

 运算符        说明                                                                                                                                  举例             
 ! 检测两个字符串是否相等,相等返回 true  
 && 或 -a 检测两个字符串是否相等,不相等返回true  
 || 或 -o 检测字符串长度是否为0,为0返回 true  

posted on 2019-06-16 11:56  rivsidn  阅读(158)  评论(0编辑  收藏  举报

导航