2013-04-16 46 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

工作完好。我会发誓,我已经尝试过这个:嘿嘿。谢谢。 –

相关问题