显示到标准输出并将最后一行设置为变量

时间:2018-08-01 22:14:35

标签: linux bash shell

我正在尝试根据应用程序的输出结果(地形计划)创建一个变量。

我需要将输出显示到stdout,然后根据最后一行创建一个变量。

如果将输出发送到stderr或tty,我就能使它工作,就像这样:

CHANGES=$(terraform plan | tee /dev/stdout | tail -1)

但是它必须转到stdout。

任何建议都是有帮助的

谢谢!

1 个答案:

答案 0 :(得分:0)

关闭。您的尾管正在使用stdout(这是管子所做的)。您不希望命令转到stdout(不仅是stdout),还希望它显示在终端上。

CHANGES=$(terraform plan | tee /dev/tty | tail -1)

这将打印 entire terraform plan输出到终端,并得到CHANGES仅包含最后一行。相反,如果您只想将terraform plan的最后一行放入变量和终端中,则可能最简单

CHANGES=$(terraform plan | tail -1)
echo "$CHANGES"