Не используйте, так 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