У меня есть задание cron, которое запускает команду php:
php /path/to/script.php > dev/null
Это должно отправить только вывод STDERR на адрес MAILTO. Из того, что я собираю, скрипт php не выводит никакой информации STDERR, даже если его состояние выхода равно 1.
Как я могу получить выходные данные команды php (STDOUT) и отправить ее только в MAILTO, если состояние выхода не равно нулю?
Считали ли вы хроническим от moreutils . Я думаю, что это именно то, что вы хотите:
В последних версиях есть
-e
переключатель, который также показывает полный вывод, если что-то было записано в stderr.источник
Поскольку выходные данные генерируются до того, как станет известен статус выхода, вам придется их где-то хранить.
Одна возможность - сохранить его в переменной оболочки:
Это не полностью сохраняет вывод скрипта (он удаляет завершающие пустые строки), но это нормально для этого варианта использования. Если вы хотите сохранить конечные пустые строки:
Если есть много информации, вы можете вместо этого сохранить ее во временном файле:
источник