Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何(在bash中)将标准输出管道化为变量,将stderr管道化为命令_Bash_Stdout_Pipe_Stderr - Fatal编程技术网

如何(在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)`

很好用。我发誓我以前试过这个:嘿嘿。谢谢,很好用。我发誓我以前试过这个:嘿嘿。非常感谢。