В скриптах ошибки обычно отправляются в файловый дескриптор 2 с помощью &2, то есть:
echo "error" >&2
Иногда /dev/stderrиспользуется вместо:
echo "error" > /dev/stderr
Глядя /dev/stderr, я вижу, что это только символическая ссылка /proc/self/fd/2, которая, в свою очередь, является символической ссылкой /dev/pts/5(на моем текущем терминале).
Кажется, немного сложнее. Есть ли какая-то логика за этим?
Является ли использование /dev/stderrи &2эквивалент?
Любое из них предпочтительнее другого?
>2, или >&2?
echo "error" >2создает файл с именем2и содержаниемerror.