Fish Shell:
Запись в стандартный поток ошибок
Как это сделать:
Чтобы записать в stderr в Fish, используйте echo
с >&2
:
echo "Ошибка: Что-то пошло не так" >&2
Вывод не будет показан в обычном выводе команды, но будет виден в консоли или может быть перенаправлен в файл:
echo "Ошибка: Что-то пошло не так" >&2 > /dev/null
Эта команда подавляет стандартный вывод, но показывает сообщение об ошибке.
Погружение
На заре развития Unix были установлены отдельные потоки для данных и ошибок: stdout и stderr. Разделение их позволяет осуществлять чистую обработку данных и независимую обработку ошибок. В Fish, как и в других оболочках, >&2
— это оператор, который направляет вывод в stderr. Альтернативы для сигнализирования об ошибках включают статусы выхода и механизмы пользовательского логирования, но прямая запись в stderr проста и широко используется. Будучи оболочкой, разработанной для интерактивного использования, Fish включает в себя функции из других оболочек, включая эту конвенцию stderr.
См. также
- Документация Fish Shell: Использование stderr
- Рекомендации по написанию сценариев в POSIX-оболочке, применимые к обработке stderr: Руководство GNU Bash