Io-Redirection
重定向 stdout 和 stderr
我想將已執行文件 (file_1.txt) 的 stdout 和 stderr 都重定向到另一個文件 (file_2.txt),並且我想將此輸出附加到 file_2.txt 內容中。我試過這個:
$ ./file_1.txt >>&2 file_2.txt
那沒有用。我究竟做錯了什麼?什麼是正確的命令?
如果 shell 是
bash
orksh
(版本 2020.0.0 或者其他版本),您需要的是:./file_1.txt >> file_2.txt 2>&1
這會將標準錯誤重定向到附加到 file_2.txt 的標準輸出。讓
&
shell 知道您正在使用文件描述符而不是文件名。您擁有的命令不起作用,因為語法對任何東西都無效,因此 shell 無法解析重定向。
file_2.txt
正如我解釋的那樣,上面的命令通過重定向這兩個來解決這個問題。如果
bash
,您也可以使用 Steeldriver 提供的:./file_1.txt &>> file_2.txt
那也是一樣的。
&
表示 stdout 和 stderr>>
並將它們都附加到file_2.txt
. 我最初給出了第一個命令,因為這是我通常使用的,因為它是我多年前首先學到的。測試後兩者均不適用於6.21.00
tcsh
版本。他們都分別給出Invalid null command.
和Ambiguous output redirect
。