Io-Redirection

無法將 csh 中 openmpi 的標準錯誤重定向到文件

  • July 27, 2017

我已經閱讀了這個問題和答案 -將 stderr 重定向到標準輸出,但似乎無法擷取 Ubuntu 16.04 LTS 上名為 OpenMPI 的軟體的錯誤。

我通過鍵入在 shell 腳本中有 OpenMPI 命令

mpirun -np 4 command 

然後在命令提示符下輸入

job_script >& logs 

這會擷取應用程序軟體錯誤和輸出,但不會擷取腳本引發的 OpenMPI 錯誤。我如何擷取 OpenMPI 錯誤以及現在這些將成為標準錯誤?

操作員將>&標準錯誤和標準輸出重定向到相同的目的地。重定向標準錯誤是 csh 不能做的最著名的事情之一,所以如果你想這樣做,答案是不可能的。(當然,這是可能的——但只能通過另一個程序,例如sh.)。但是,您希望重定向 stdout 和 stderr,並且>&這樣做。

如果job_script >& logs發出一些輸出,則應用程序必須直接寫入終端。您無法通過重定向擷取它。您可以使用該script命令將所有內容(包括終端輸出)記錄到文件中。

script -c 'job_script' logs >/dev/null

話雖這麼說,現在是 2017 年。自從 (t)csh 在互動式使用方面比 bash 有任何優勢已經過去了大約 15 年,比 zsh 有了大約 25 年的時間,而 csh 從來都不擅長編寫腳本。現在是退休的時候了。

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