显示到stdout并将最后一行设置为变量



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

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

如果我将输出发送到stderr或tty,我就可以让它工作,如下所示:

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

但是它必须进入stdout。

任何建议都有助于

谢谢!

关闭。你的尾管正在接收stdout(这就是管道的作用(。您不希望命令转到stdout(好吧,不仅仅是stdout(,您希望它显示在终端上。

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

这将把整个terraform plan输出打印到终端,并使CHANGES只包含最后一行。如果你只想把terraform plan的最后一行输入到你的变量和终端中,那么最简单的方法可能就是进行

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

最新更新