Fish Shell:
Вывод отладочной информации
Как это сделать:
Познакомьтесь поближе с echo
– швейцарским ножом для вывода в Fish. Вот как добавить немного отладочных печатей в ваши shell-скрипты.
function greet
set name $argv[1]
echo "Привет, $name! Давай отлаживать."
echo "Запущена функция greet" >&2
end
greet "Ада"
Пример вывода:
Привет, Ада! Давай отлаживать.
Запущена функция greet
Стандартный вывод (stdout
) – это главная сцена вашего скрипта, но для отладочного болтовни используйте стандартную ошибку (stderr
) с использованием >&2
.
Подробнее
Когда мониторы были такими же глубокими, как и широкими, вывод был на вес золота. Стандартный вывод (stdout
) стал чистым, ориентированным на пользователя каналом, в то время как стандартная ошибка (stderr
) превратилась в тёмный переулок для разговоров программистов, например, для вывода отладочной информации.
В Fish стандартные команды вывода – это echo
, printf
и print
. Echo
используется за его простоту и в основном для простых сообщений и встроенной отладки.
Но вам не обязательно ограничиваться только echo
. Предпочитайте printf
для форматированных строк или используйте перенаправление (>
или >>
), чтобы выгружать отладочную информацию в файл для последующего просмотра.
Что касается реализации, использование stderr
для вывода отладочной информации – это конвенция из мира Unix, помогающая отделить зёрна (фактический вывод) от плевел (отладочный шум). Это означает, что пользователи могут все ещё перенаправлять реальный вывод вашего скрипта, не получая вмешательства отладочного мусора.
Смотрите также
- Документация Fish Shell о Командах
- StackOverflow: Обсуждения и примеры отладки в Fish
- Wiki Грега: Подробная информация о перенаправлении ввода/вывода