如何(在bash中)将标准输出管道化为变量,将stderr管道化为命令
我有一根这样的管子:如何(在bash中)将标准输出管道化为变量,将stderr管道化为命令,bash,stdout,pipe,stderr,Bash,Stdout,Pipe,Stderr,我有一根这样的管子: VAR=`command1 | command2 | etc...` 我希望,如果管道成功完成,输出保存在VAR中,否则,如果管道在管道的任何一点失败,错误将发送到命令。该命令然后以某种格式将错误写入某个文件。类似的(但这不起作用): 我尝试过其他组合: |& err_command 2>&1 | err_command 但它们不起作用,我也不知道为什么。尝试使用流程替换 VAR=`{ command1 | command2 | etc... ;
VAR=`command1 | command2 | etc...`
我希望,如果管道成功完成,输出保存在VAR
中,否则,如果管道在管道的任何一点失败,错误将发送到命令。该命令然后以某种格式将错误写入某个文件。类似的(但这不起作用):
我尝试过其他组合:
|& err_command
2>&1 | err_command
但它们不起作用,我也不知道为什么。尝试使用流程替换
VAR=`{ command1 | command2 | etc... ; } 2> >(err_command)`
尝试使用进程替换
VAR=`{ command1 | command2 | etc... ; } 2> >(err_command)`
很好用。我发誓我以前试过这个:嘿嘿。谢谢,很好用。我发誓我以前试过这个:嘿嘿。非常感谢。