2> & 1
redirect в оболочке Bourne принимает вывод, отправленный в файловый дескриптор 2 (по умолчанию, стандартная ошибка), и отправляет его вместо этого в файловый дескриптор 1 (по умолчанию стандартный вывод) .
Но что делает перенаправление 2 <& 1
?
Отправляет ли он stderr на стандартный ввод?
Моя теория заключалась в том, что он отправлял stdin на stderr (например, такой же, как 1> & 2
), но экспериментально это НЕ так:
$ perl -e 'print "OUT\n"; print STDERR "ERR\n"; \
while (<>) { print "IN WAS $_\n";}' \
> out3 2<&1
df
$ cat out3
ERR
OUT
IN WAS df
Обратите внимание, что стандартная и стандартная ошибка отправлялись в файл out3, куда был перенаправлен стандартный вывод.