2013-04-16 50 views
0

有這樣的管道:我如何管(在bash)標準輸出到一個變量,和stderr的命令

VAR=`command1 | command2 | etc...` 

而且我想,如果管完成成功地,輸出保存在VAR中,否則,如果管道在管道的任何點發生故障,則將錯誤發送給命令。該命令然後將具有某種格式的錯誤寫入某個文件。類似的東西(但不工作):

VAR=`{ command1 | command2 | etc... ; } 2> err_command` 

我試過其他組合:

|& err_command 
2>&1 | err_command 

但他們不工作,我不知道爲什麼。

回答

3

嘗試使用進程替換。

VAR=`{ command1 | command2 | etc... ; } 2> >(err_command)` 
+0

工作完好。我會發誓,我已經嘗試過這個:嘿嘿。謝謝。 –

相關問題