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 это выполняет команду эха. Я не могу выяснить, как сделать if соответствие оператора состояние monit status вывод.

1
задан 2 June 2014 в 17:04
1 ответ

Вы сравниваете статические строки status со значением error.

Есть несколько способов сделать это. Для захвата вывода команды в переменной используйте

STATUS=`monit status`

или

STATUS=$(monit status)

Для простого случая, как у вас, я бы выбрал простой

if monit status | grep -q error ; then
    ...
fi
1
ответ дан 4 December 2019 в 00:24

Теги

Похожие вопросы