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