我试图从最后一个命令与bash相等的东西如果声明:
#!/bin/bash monit status if [ "status" != "error" ]; then echo -e "hostname\ttest\t0\t0" | /usr/sbin/send_nsca -H hostname -c /etc/send_nsca.cfg exit 1; fi
即使monit status status = online with all services都会运行echo命令。 我不知道如何使if语句匹配monit status输出的monit status 。
您正在比较静态stringstatus与error 。
有几种方法可以解决这个问题。 为了捕获variables中命令的输出,使用
STATUS=`monit status`
要么
STATUS=$(monit status)
对于一个简单的情况下,我会去一个简单的
if monit status | grep -q error ; then ... fi