Io-Redirection

重定向 stdout 和 stderr

  • August 3, 2021

我想將已執行文件 (file_1.txt) 的 stdout 和 stderr 都重定向到另一個文件 (file_2.txt),並且我想將此輸出附加到 file_2.txt 內容中。我試過這個:

$ ./file_1.txt >>&2 file_2.txt

那沒有用。我究竟做錯了什麼?什麼是正確的命令?

如果 shell 是bashor ksh(版本 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.00tcsh版本。他們都分別給出Invalid null command.Ambiguous output redirect

引用自:https://unix.stackexchange.com/questions/663068