2016-02-21 132 views
0

我需要从一个命令中获取输出,将它变成两个不同的命令并将其输出保存在变量中。如何使用tee运行命令并保存输出?

因此,像这样:

command1 | tee >(command2 > var1) >(command3 > var2) >/dev/null 

如果VAR1和VAR2是变量而不是文件。

如果还有另一种方法可以在不使用tee的情况下将命令的输出引导到两个不同的命令中,我也可以这么做。我知道我可以简单地将command1的输出存储到一个变量中,然后将它回显到command2和command3中,但我不想那样做。

回答

1

因此(在bash reference manual找到):

命令替换,用括号分组命令,异步命令在一个子shell环境中调用[...]

你不能拉子变量:

对子shell环境所做的更改不会影响shell的执行环境。

您将不得不使用一个变量来存储第一个输出并将其传递给其他命令。

相关问题