如何使用tee运行命令并保存输出?

时间:2016-02-21 00:27:17

标签: linux bash tee

我需要从一个命令中获取输出,将它输入两个不同的命令并将其输出保存在变量中。

这样的事情:

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

其中var1和var2是变量而不是文件。

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

1 个答案:

答案 0 :(得分:1)

因此(在bash reference manual中找到):

  

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

你无法将变量拉出子壳:

  

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

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