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 
       或者就是未用""引用的字符串本身,放到[]结构中。虽然一般情况下可 
       以工作,但这是不安全的。

 

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页