2>&1
chuyển hướng trong Bourne shell lấy đầu ra được gửi đến một bộ mô tả tập tin 2 (theo mặc định, lỗi chuẩn) và gửi nó thay cho tệp mô tả 1 (theo mặc định là đầu ra tiêu chuẩn).Chuyển hướng "2 <& 1" làm gì trong trình bao Bourne?
Nhưng chuyển hướng 2<&1
làm gì?
Nó có gửi stderr đến stdin không?
Lý thuyết của tôi là nó được gửi stdin để stderr (ví dụ tương tự như 1>&2
) nhưng thực nghiệm, đó là không phải như vậy:
$ 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
Lưu ý rằng tiêu chuẩn ra khỏi VÀ sai số chuẩn cả hai đi đến nộp OUT3 nơi stdout đã được chuyển hướng.
Là một lưu ý - đây là một (phải) lỗi một đồng nhân viên đưa vào khi anh ta sử dụng sai '<' thay vì '>'. Tôi chỉ cố gắng không hiểu chính xác những gì Shell đang làm với nó. Cho đến nay, nó SEEMS như thể nó giống như '2> & 1' – DVK
' bash --version'? –
@ user112358132134 - 'GNU bash, phiên bản 2.03.0 (1) -release (sparc-sun-solaris2.5.1)' – DVK