我需要从一个命令中获取输出,将它输入两个不同的命令并将其输出保存在变量中。
这样的事情:
command1 | tee >(command2 > var1) >(command3 > var2) >/dev/null
其中var1和var2是变量而不是文件。
如果有另一种方法可以在不使用tee的情况下将命令输出指向两个不同的命令,我也可以这样做。我知道我可以简单地将command1的输出存储到变量中,然后将其回显到command2和command3中,但我不想这样做。
答案 0 :(得分:1)
因此(在bash reference manual中找到):
在子shell环境中调用命令替换,用括号分组的命令和异步命令[...]
你无法将变量拉出子壳:
对子shell环境所做的更改不会影响shell的执行环境。
您必须使用变量来存储第一个输出并将其传递给其他命令。