将管道输出保存到变量

时间:2014-04-23 01:46:54

标签: bash

我在管道中有两个.jar文件。 1.jar将输出两行,这两行都是2.jar的输入。 现在我想将1.jar的中间输出的每一行存储到变量A和B中,同时允许2.jar将两行作为输入。

java -jar 1.jar | XXX | java -jar 2.jar

绕道而行,我可以做到

java -jar 1.jar | tee out | java -jar 2.jar

并阅读文件以保存变量,但我希望能够采用更直接的方式。

1 个答案:

答案 0 :(得分:1)

最终版本,由Jonathan Leffler完善:

IFS=$'\n' a=($(java -jar 1.jar)); printf "%s\n" "${a[@]}" | java -jar 2.jar
echo ${a[0]}   # line 1
echo ${a[1]}   # line 2