如何存储已经通过管道的命令的输出

时间:2019-06-26 00:38:30

标签: linux docker

我正在尝试将命令输出第二行的第一个单词存储为变量

我尝试将整个内容放在()的前面,并在前面加上$,这是行不通的

containerID= docker ps | awk 'END { print }' | { read first rest ; echo $first ; }

echo $containerID
echo $containerID

我希望它向后吐两次containerID变量,但是它只会吐一次。在故障排除中,我发现“ echo $ first”是输出任何内容的原因。这意味着它没有在containerID变量中存储任何内容,为什么?

1 个答案:

答案 0 :(得分:2)

使用$(...)捕获命令的输出。在等号周围不要留任何空格。

containerID=$(docker ps | awk 'END { print }' | { read first rest ; echo $first ; })

更简单:

containerID=$(docker ps | awk 'END {print $1}')