我正在嘗試重定向UNIX命令的STDOUT/STDERR並追加到korn shell中的日誌文件。此重定向「>>&<filename>」在Korn shell中工作嗎?
室射頻文件1 >> &日誌文件
將在KSH此命令的工作或這是一個典型的bash命令? 以上命令會對我造成什麼危害?
我正在嘗試重定向UNIX命令的STDOUT/STDERR並追加到korn shell中的日誌文件。此重定向「>>&<filename>」在Korn shell中工作嗎?
室射頻文件1 >> &日誌文件
將在KSH此命令的工作或這是一個典型的bash命令? 以上命令會對我造成什麼危害?
我使用此表單將標準輸出和標準錯誤重定向到同一個文件。
ls -ld . fred > no_fred 2>&1
剛剛在Red Hat Linux 4的Korn shell中測試過。 no_fred包含:
ls: fred: No such file or directory
drwxrwxr-x 2 user group 1024 Apr 27 17:41 .
「>」,實際上是1>,它說重定向文件描述符1(標準輸出)。 「2>」重定向標準錯誤,因爲標準錯誤是文件描述符2.「& 1」表示「無論您使用文件描述符1」。所以在一起,這意味着「將標準輸出轉儲到文件中,並伴隨標準錯誤」。
此方法的一個優點是錯誤消息顯示在正確的位置。例如,對於編譯失敗的文件,編譯器的錯誤消息將顯示在makefile的編譯命令之後。
>> &構造可能會將該命令的輸出附加到日誌文件中,並將其放入後臺。我不確定它是否有任何標準錯誤。我剛剛諮詢過Bolsky/Korn 1989,它甚至不在那裏,所以也許別人可以解析它的功能。
更新:如果你在你的命令的任何管道,那麼早期階段的標準 錯誤將首先出現,作爲錯誤產生命令 運行。由於只有標準輸出通過管道路由,所以當整個管道完成時,它將全部同時出現。
您試圖在ksh中使用csh語法。見Jason的回答。
對於附加:
ls -ld . fred 1>> no_fred 2>&1
作品與ksh88太 – Dima 2011-11-17 14:22:21