В скриптах ошибки обычно отправляются в файловый дескриптор 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
.