Bash
重定向順序
我不太明白電腦是如何讀取這個命令的。
cat file1 file2 1> file.txt 2>&1
如果我理解,
2>&1
只需將標準錯誤重定向到標準輸出。按照這種邏輯,命令向我顯示如下:
- 連接文件
file1
和file2
.stdout
從此操作發送到file.txt
.- 發送
stderr
到stdout
.- 結尾?
我不確定電腦在做什麼。按照我的邏輯,命令應該是
cat file1 file2 2>&1 > file.txt
但這不正確。
我發現使用作業更容易想到。
>
就好像=
&
就好像$
你從
1 = /dev/tty 2 = /dev/tty
那麼你的第一個例子
1> file.txt 2>&1
, 確實1 = file.txt 2 = $1 # and currently $1 = file.txt
留給你
1 = file.txt 2 = file.txt
如果您以另一種方式進行操作,則再次開始
1 = /dev/tty 2 = /dev/tty
然後
2>&1 > file.txt
確實2 = $1 # and currently $1 = /dev/tty 1 = file.txt
所以最終結果是
1 = file.txt 2 = /dev/tty
你只重定向了
stdout
,沒有stderr
。