Что делает перенаправление «2 <& 1» в оболочке Bourne?

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, куда был перенаправлен стандартный вывод.

10
задан DVK 17 February 2012 в 19:39
поделиться