next up previous
Next: 我如何在 .cshrc 中判斷是否在 login shell 中? Up: 初學者可能會問的基本問題 Previous: 我要怎要用程式或者是在 shell script 中設定目前所用的 shell 的環境變數或改變所在的目錄?

我要如何將 csh 的 stdout 與 stderr 導向到不同的地方呢?

在 csh 中,用 ">" 將 stdout 導向,用 ">&" 則能將 stdout 與 stderr 一起導向。可是不能只單獨把 stderr 轉向。最好的方法是

	        ( command >stdout_file ) >&stderr_file
以上的命令會開一個 subshell 執行 "command";而這個 subshell 的  stdout 則被轉向到 stdout_file,同時這個 subshell 的 stdout 和  stderr 則都被轉向到 stderr_file,但是因為 stdout 已經先被轉向了, 所以 stderr 就會被轉到 stderr_file 了。

如果你只是單純的不想把 stdout 做轉向,那麼就用 sh 來幫你吧。

	        sh -c 'command 2>stderr_file'



Tan Koan-Sin
1999-03-02