Можно использовать grep
для получения вывода нужного процесса awk
второй столбец и test
если он нулевой
затем echo
сообщение, которое вы хотите mail
или mailx
с нужной темой и адресами.
Вы можете перебирать несколько предопределенных строк
Приведенный ниже ответ используется точно на основе вывода, как указано в вопросе, и предполагается, что дальнейшие проверки будут иметь такой же вывод шаблона.
for CHECK in $(awk '{print $1}' output.txt | grep count=| cut -d"=" -f1)
do
if [ $(grep $CHECK output.txt | awk '{print $2}') -ne 0 ]
then
echo "$(grep $CHECK output.txt")" | mailx -s "CHECK ABC PROCESS" foo@bar.com
fi
done
Проблема возникает из-за использования grep --color=always
в качестве первой команды.
Судя по всему, bash отслеживает цвет своей оболочки, используя управляющие символы, перечисленные выше.
Итак, ./^[[35m^[[Kapp.vue^[[m^[[K^[[36m^[[K
на самом деле сообщает bash, что «эта строка содержит текст app.vue с фиолетовой окраской текста». Нано, однако, дальтоник.
Если вы хотите, вы можете попытаться удалить эти цветовые индикаторы из строки, используя обычные процедуры регулярных выражений.
В моем случае мне посчастливилось просто сказать grep --color=never
вместо --color=always
. С этим проблема ушла.
Это раскрашивающие строки. :^[ — ESC, [..m — цвет переднего плана и т. д. для вашего терминала.
Задать grep --color=never