执行"大于"超过两位数

时间:2014-08-30 07:02:55

标签: bash variables numerical-methods

我试图谷歌这个,但我不确定我应该如何正确地形成我的搜索。我是编程新手,我在这个社区和谷歌的帮助下管理,创建一个用bash编写的OP5支票。

OP5检查调用使用SSH登录设备的expect脚本并执行一组命令并将输出写入文件。该文件将包含以下文本:

“伯爵:46”

在OP5检查中,我将grep out数值,然后形成一个“大于”的语句,用于比较expect脚本中的变量和脚本运行时设置的-c(严重)-w(警告限制)变量。

现在这是我的困境。似乎“大于”语句只读取两位数。当我将警告限制设置为1500并将关键限制设置为1700时。它将其读作“15”和“17”,从而在监控程序中引发严重警告。

目前我使用grep创建的变量如下所示:

VPNCount=$(grep -o '[0-9]\+' $ExpectFolder/$HOSTADDRESS.op5.vpn.results)

我能做些什么来使脚本理解1500和1700的值大于46并且它至少读取5位数?

1 个答案:

答案 0 :(得分:4)

如果没有使用比较陈述,要弄清楚可能出现的问题并不容易,但这是在黑暗中刺伤:

请注意,如果比较是基于字符串的,则“46”大于“1500”

if [[ 46 > 1500 ]]; then echo true; fi
> true

另一方面,如果进行整数比较,您将得到正确的结果:

if [ 46 -gt 1500 ]; then echo true; fi
>

这可能是问题吗?

更多信息here