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



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

所以像这样:

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

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

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

正因为如此(在 Bash 参考手册中找到),

命令

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

您不能将变量从子外壳中提取出来:

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

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

最新更新