Вывод отладочной информации

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, помогающая отделить зёрна (фактический вывод) от плевел (отладочный шум). Это означает, что пользователи могут все ещё перенаправлять реальный вывод вашего скрипта, не получая вмешательства отладочного мусора.

Смотрите также