我有一個簡單的腳本,用於啓動另一個程序。這個其他程序有時可能產生一個SIGSEGV
,這會中斷我的輸出。因此,我添加了幾行應該暫時將stderr
重定向到/dev/null
,以便忽略SIGSEGV
。以下是我的代碼草案:stderr在bash腳本中的臨時重定向
exec 2> /dev/null
progname >& ./tmp/run.txt && run_status='OK'
exec 2>1
的問題是,最後一行沒有做我想做的。第一行顯然有效,並重定向stderr
。最後一行應該是將stderr
返回到之前的位置(我只能假設它與stdout
相同)。
任何幫助將appriciated!
爲什麼使用「>&」如果你不想讓stderr進入輸出文件? – 2009-01-15 15:28:28
停止程序運行的分段錯誤不會由程序本身輸出。我不知道這是爲什麼,但這意味着我不關心程序的錯誤(這就是爲什麼我使用「>&」),而是腳本本身。 – 2009-01-15 15:33:39
即使將stderr重定向到/ dev/null,信號仍不會停止您的程序?這有什麼幫助?無論如何,你不應該執行2>/dev/stderr讓它回到stderr嗎? – jishi 2009-01-15 15:36:16