Описание тега ipa
Я думаю, что вы будете иметь, чтобы использовать временный файл для этой операции, так что вы можете использовать &&
оператор, чтобы только запустить почта команду, если команда grep возвращает статус выхода, что говорит он на таких матчах:
TMPFILE=`mktemp в /tmp/mailqgrep.ХХХХХХ`; mailq | для egrep 'отклонен|отказался' -А5 -В5 > "$TMPFILE" && почта -с 'ДД' электронной почты@письмо < "$TMPFILE"; РМ "$TMPFILE"
Если вы не возражаете временный файл шарится где-то и можно использовать статические имя, вы можете пропустить специальный именование и удаление вещи:
mailq | для egrep 'отклонен|отказался' -А5 -В5 > в /tmp/mailqgrep && почта -с 'ДД' электронной почты@письмо < /tmp/и mailqgrep
Редактировать: увидев Гленна ответить , что я играл с этим немного больше и, видимо, присваивая переменной с помощью $()
синтаксис возвращает код выхода из команды, так что вы можете пропустить проверку он использовал для длины строки и использовать его вместо. Вот это все в одну команду:
данные=$(mailq | для egrep 'отклонена|не-А 5-Б 5) && почта -с 'ДД' электронной почты@письмо <<< "$данные"
Правка 2: После того как увидел Саймона ответа я проверил мою почту
программу. Он ведет себя не так, как он описывает по умолчанию, но есть опция для этого. Из man-страницы:
-Е
если исходящее сообщение не содержит какого-либо текста в его первую или только части сообщения, не отправить его, но выбросить его молча, эффективно устанавливает skipemptybody переменных при старте программы. Это полезно для отправки сообщений из скриптов запускается по cron(8).
Делая это возможно:
mailq | для egrep 'отклонена|не-А 5-Б 5 | почту -Е -с 'ДД' электронной почты@письмо