Ответ 1
Просто отправьте stdout в null:
cmd > /dev/null
Это сохраняет stderr, но подавляет stdout.
Я хочу завязать файл и печатать stderr (сообщение об ошибке), но не печатайте stdout (говоря, что файл в порядке).
php -l "foo/bar.php"
Я полагаю, что это будет какая-то магия с >&
, но я никогда не понимал, как это работает.
Я хочу использовать все stdout, сохранять stderr.
(Извините, если это дуликат, но я не нашел в этом никаких вопросов)
Просто отправьте stdout в null:
cmd > /dev/null
Это сохраняет stderr, но подавляет stdout.
Вы можете использовать:
php -l "foo/bar.php" 2>&1 > /dev/null
то есть. перенаправить stderr в stdout и stdout на /dev/null
, чтобы получить только stderr
на вашем терминале.
Если ошибок нет, он выводит сообщение "Нет ошибок" на стандартный вывод. Если есть ошибки, он печатает подробное сообщение для stderr. Я хочу только этот.
Это будет печатать сообщение об ошибке, если оно отправлено, или No error.
, если оно пустое.
ERROR=$(exec php -l "foo/bar.php" 2>&1 >/dev/null)
[[ -z $ERROR ]] && ERROR='No error.'
echo "$ERROR"