首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CentOS 7 -eq:期望的一元运算符

CentOS 7 -eq:期望的一元运算符
EN

Stack Overflow用户
提问于 2016-08-09 10:43:59
回答 2查看 1.9K关注 0票数 2

我必须检查Tomcat 8是否在运行。为此,我使用以下脚本。

代码语言:javascript
复制
#!/bin/bash

statuscode=$(wget --server-response http://localhost:8080 2>&1 | awk '/^  HTTP/{print $2}')

if [ $statuscode -eq 200 ]
then
    echo "TOMCAT OK"
    exit 0
else
    echo "TOMCAT CRITICAL"
    exit 2
fi

当我在CentOS 7上运行这个脚本时。

如果Tomcat 8正在运行,那么脚本将运行,没有任何错误。

如果Tomcat 8被停止,那么脚本运行时会出现以下错误

第5行:[:-eq:期望的一元运算符

我怎样才能解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-09 10:53:32

在将变量与预期输出进行比较之前,检查变量是否为空。

代码语言:javascript
复制
#!/bin/bash

statuscode=$(wget --server-response http://localhost:8080 2>&1 | awk '/^  HTTP/{print $2}')

if [ -n "$statuscode" ] && [ $statuscode -eq 200 ]
then
    echo "TOMCAT OK"
    exit 0
else
    echo "TOMCAT CRITICAL"
    exit 2
fi
票数 2
EN

Stack Overflow用户

发布于 2016-08-09 10:54:26

试试这个:

如果状态代码为空,则抛出-eq: unary operator expected

代码语言:javascript
复制
#!/bin/bash
{
statuscode=$(wget --server-response http://localhost:80 2>&1 | awk '/^  HTTP/{print $2}')

if [ -z "$statuscode" ]
then
echo "TOMCAT CRITICAL";
exit 2;
else
  if [ $statuscode -eq 200 ]
    then
     echo "TOMCAT OK";
     exit 0;
  fi
fi
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38848577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档