Я пытаюсь равняться чему-то от последней команды с ударом если оператор:
#!/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
это выполняет команду эха. Я не могу выяснить, как сделать if
соответствие оператора состояние monit status
вывод.
Вы сравниваете статические строки status
со значением error
.
Есть несколько способов сделать это. Для захвата вывода команды в переменной используйте
STATUS=`monit status`
или
STATUS=$(monit status)
Для простого случая, как у вас, я бы выбрал простой
if monit status | grep -q error ; then
...
fi