bash 比较

二元比较操作符比较两个变量或是数值。注意整数和字符串比较的分别。

整数比较

-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" ]

<

小于(在双括号里使用)

(("$a" < "$b"))

<=

小于等于 (在双括号里使用)

(("$a" <= "$b"))

>

大于 (在双括号里使用)

(("$a" > "$b"))

>=

大于等于(在双括号里使用)

(("$a" >= "$b"))

字符串比较

=

等于

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

==

等于

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

它和=是同义词。

Note

==比较操作符在一个双方括号测试和一个单方括号号里意思不同。

1 [[ $a == z* ]]    # 如果变量$a以字符"z"开始(模式匹配)则为真.
   2 [[ $a == "z*" ]]  # 如果变量$a与z*(字面上的匹配)相等则为真.
   3 
   4 [ $a == z* ]      # 文件扩展和单元分割有效.
   5 [ "$a" == "z*" ]  # 如果变量$a与z*(字面上的匹配)相等则为真.
   6 
   7 # 多谢Stéphane Chazelas

!=

不相等

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

操作符在[[ ... ]]结构里使用模式匹配.

<

小于,依照ASCII字符排列顺序

if [[ "$a" < "$b" ]]

if [ "$a" \< "$b" ]

注意"<"字符在[ ] 结构里需要转义

>

大于,依照ASCII字符排列顺序

if [[ "$a" > "$b" ]]

if [ "$a" \> "$b" ]

注意">"字符在[ ] 结构里需要转义.

-z

字符串为"null",即是指字符串长度为零。

-n

字符串不为"null",即长度不为零.

Caution

在测试方括号里进行-n测试时一定要把字符串用引号起来。用没有引号引起的! -z或者在方括号里只有未引号引起的字符串 来进行测试一般都能工作,然而,这其实是不安全的测试。应该总是用引号把测试字符串引起来.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值