Не используйте, так cat
как некоторые из них упоминаются здесь. cat
это программа
while echo
и printf
встроенная в bash (shell). Запуск программы или другого скрипта (также упомянутого выше) означает создание нового процесса со всеми его расходами. Используя встроенные функции, написание функций довольно дешево, потому что нет необходимости создавать (выполнять) процесс (-окружение).
Опнер спрашивает "есть ли какой-нибудь стандартный инструмент для вывода ( конвейера ) в stderr", краткий ответ: НЕТ ... почему? ... перераспределение каналов - это элементарная концепция в таких системах, как unix (Linux ...), и bash (sh) опирается на эти концепции.
Я согласен с новичком, что перенаправление с нотациями, как это: &2>1
это не очень приятно для современных программистов, но это bash. Bash не был предназначен для написания огромных и надежных программ, он предназначен для того, чтобы помочь администраторам работать там с меньшим количеством нажатий клавиш ;-)
И, по крайней мере, вы можете разместить перенаправление в любом месте строки:
$ echo This message >&2 goes to stderr
This message goes to stderr