Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在两个以上数字上执行“大于”_Bash_Variables_Numerical Methods - Fatal编程技术网

Bash 在两个以上数字上执行“大于”

Bash 在两个以上数字上执行“大于”,bash,variables,numerical-methods,Bash,Variables,Numerical Methods,我试着用谷歌搜索这个,但我不确定我应该如何正确地形成我的搜索。我是编程新手,在这个社区和谷歌的帮助下,我创建了一个用bash编写的OP5检查 OP5检查调用expect脚本,该脚本使用SSH登录到设备,执行一组命令并将输出写入文件。该文件将包含以下文本: 计数:46 在OP5中,check I grep出数值,然后形成一个biger-than语句,比较expect脚本中的变量和脚本运行时设置的-c critical-w warning limit变量 现在是我的困境。似乎bigger than语

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

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

计数:46

在OP5中,check I grep出数值,然后形成一个biger-than语句,比较expect脚本中的变量和脚本运行时设置的-c critical-w warning limit变量

现在是我的困境。似乎bigger than语句只读取两位数字。当我将警告极限设置为1500,临界极限设置为1700时。它读作15和17,因此在监视程序中发出了严重警告

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

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

我能做些什么来让脚本理解1500和1700的值比46大,这样它至少可以读取5位数字吗?

如果没有使用比较语句,很难找出可能出错的地方,但这里有一个秘密:

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

if [[ 46 > 1500 ]]; then echo true; fi
> true
另一方面,如果进行整数比较,则会得到正确的结果:

if [ 46 -gt 1500 ]; then echo true; fi
>
这可能是问题所在吗


更多信息。

显然是一个服务监控框架。我从来没有听说过它。你能展示一下你的比较语句吗?这不是Bash的工作方式,可能是配置错误或OP5安装中的错误。我建议你带着他们的支持提出来。如果你能拿出一个展示这种行为的独立Bash片段,在这里发布它,而不是你当前的大部分问题。大家好。好的,下面是比较:VPNCount=$grep-o'[0-9]\+'$ExpectFolder/$HOSTADDRESS.op5.vpn.results如果[[$VPNCount>$CRITICAL]],则回显vpn隧道的数量超过临界阈值-配置的隧道:$VPNCount退出,状态临界退出代码为2退出2-因此我认为您是正确的。我要试试你的方法它工作得很好!非常感谢你的帮助!!