shell “==“ vs.“-eq“

"==“和”-eq"的区别:"=="是判断字符串是否相等,"-eq"是判断字符串对应的数字值是否相等。因为bash中所有的变量都是字符串。对变量进行数值计算时,只不过是临时把字符串转换成数字,然后计算,计算后再把结果数字转换为字符串。

#!/bin/bash

num1=123  #num1 is a string, length 3
num2=0123 #num2 is a string, length 4

echo -n "when use '=='  to compare: "
if [ $num1 == $num2 ];then
  echo "$num1 and $num2 equal"
else
  echo "$num1 and $num2 not equal"
fi

echo -n "when use '-eq' to compare: "
if [ $num1 -eq $num2 ];then
  echo "$num1 and $num2 equal"
else
  echo "$num1 and $num2 not equal"
fi

执行结果:

when use '=='  to compare: 123 and 0123 not equal
when use '-eq' to compare: 123 and 0123 equal

==直接比较字符串,-eq比较字符串对应的数字值。

同理:

!= # -ne, not equal

> # -gt, great than

< # -lt, low than

>= # ge, great and equal

<= # le, low and equal

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值