@Картик, что вы ищете, вы изменить вопрос, чтобы быть более ясным. Я не вижу ничего плохого в наименовании приложения - это, вероятно, помочь другим людям в том, чтобы воспроизвести вашу проблему. Зачем профессору быть автором вообще? Спасибо за ваш ответ. Kubuntu является системой в одиночку. Не использовал Windows в течение примерно трех лет :-) снимок экрана невозможно, потому что сообщение об ошибке отображается только в течение 2 секунд. Мне пришлось перезагрузить систему около 7 раз, пока я не получил сообщение об ошибке. Он просто говорит efidisk читать ошибки. Я попробую предложенный вами mehthods, когда я вернусь домой сегодня вечером. У меня такая же проблема, но мой макбук про 15 ретина на гарантии сейчас. Его плохой дизайн, или качество материала, потому что порт должен быть постоянно используется. Эти хипстеры в техподдержке, сказали, что если я хочу исправить это, я должен заплатить $500 за новую плату логики. Как говорил ваш автомобиль имеет проблемы с колесом, так что вы должны купить совершенно новый двигатель. Они не хотят, чтобы открыть ноутбук и взгляните или согнуть с правильный инструмент этот маленький кусочек металла, единственным решением для них была платить, я говорил в менеджере и было то же самое. Компания Apple теряет лояльных клиентов, потому что они АР

Я думаю, что вы будете иметь, чтобы использовать временный файл для этой операции, так что вы можете использовать && оператор, чтобы только запустить почта команду, если команда 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 | почту -Е -с 'ДД' электронной почты@письмо