2016-02-21 67 views
0

我需要從一個命令中獲取輸出,將它變成兩個不同的命令並將其輸出保存在變量中。如何使用tee運行命令並保存輸出?

因此,像這樣:

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

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

如果還有另一種方法可以在不使用tee的情況下將命令的輸出引導到兩個不同的命令中,我也可以這麼做。我知道我可以簡單地將command1的輸出存儲到一個變量中,然後將它回顯到command2和command3中,但我不想那樣做。

回答

1

因此(在bash reference manual找到):

命令替換,用括號分組命令,異步命令在一個子shell環境中調用[...]

你不能拉子變量:

對子shell環境所做的更改不會影響shell的執行環境。

您將不得不使用一個變量來存儲第一個輸出並將其傳遞給其他命令。

相關問題