2>&1
Przekierowanie w powłoce Bourne przyjmuje wyjście wysyłane do deskryptora pliku 2 (domyślnie, błąd standardowy) i wysyła go zamiast do deskryptora pliku 1 (domyślnie standardowe wyjście).Co robi przekierowanie "2 <i 1" w powłoce Bourne'a?
Ale co robi przekierowanie 2<&1
?
Czy wysyła stderr na standardowe wejście?
Moja teoria było to, że wysyłając stdin do stderr (np samo jak 1>&2
), ale eksperymentalnie, że nie jest to przypadek:
$ 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
Zauważ, że standardowe wyjście i błąd standardowy zarówno poszedł złożyć out3 gdzie stdout został przekierowany.
Na marginesie - było to (niby) ko-bug pracownik wstawił, gdy przez pomyłkę używał '<' zamiast '>'. Po prostu próbuję zrozumieć, co dokładnie robi z tym Shell. Jak na razie SEEMS wygląda tak, jakby był taki sam jak '2> & 1' – DVK
' bash --version'? –
@ user112358132134 - 'GNU bash, wersja 2.03.0 (1) -release (sparc-sun-solaris2.5.1)' – DVK