使用 bash 脚本获取 docker 图像命令的输出

get docker images command's output with bash script

我正在尝试让 docker images 命令输出显示在网页上。

例如:Docker images ouput

正如您在图片上看到的,格式正确。

但是我在网页上得到的是一行根本没有格式化;

REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 3448f27c273f 2 days ago 109.4 MB mysql latest e799c7f9ae9c 3 days ago 407.3 MB

这是我现在的脚本;

docker_images=$(docker images)

echo $docker_images

如何通过 echo 获得格式正确的输出?

这与 shell 在打印带和不带双引号的变量时如何处理换行符、空格、制表符等有关。要获得所需的输出,请替换

echo $docker_images

echo "$docker_images"

请参阅Capturing multiple line output into a Bash variable以获得更详细的解释。

所以我尝试了一个 echo nl2br($output) 给了我这个;

HTML OUTPUT

这有点好,但格式仍然不正确。有什么改进方法吗?

编辑:

现在可以使用了,我得到了我想要的输出。我不得不这样做;

echo "<pre>";
echo nl2br($output) or $output;
echo "</pre>";

好吧,它是纯文本的。如果有人想操纵这些,可以使用dockerAPI。 https://docs.docker.com/engine/api/v1.24/