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

我试图将整个东西放在()的前面并加上一个$,但它不起作用

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

echo $containerID
echo $containerID


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

最佳答案

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

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


更简单:

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

10-08 18:00