Я пытаюсь получить docker images
вывод команды для отображения на веб-странице.
Пример: Вывод изображений Docker
Как вы можете видеть на изображении, это хорошо отформатировано.
Но то, что я получаю на своей веб-странице, это одна строка, не отформатированная вообще;
РАЗМЕР ИД ИЗОБРАЖЕНИЯ ДЛЯ ХРАНИЛИЩА СОЗДАННЫЙ РАЗМЕР nginx последний 3448f27c273f 2 дня
назад 109.4 MB mysql последнее e799c7f9ae9c 3 дня назад 407.3 MB
Это мой сценарий на данный момент;
docker_images=$(docker images)
echo $docker_images
Как я могу получить хорошо отформатированный вывод через мой эхо?
Это связано с тем, как оболочка обрабатывает символы новой строки, пробелы, табуляции и т. Д. При печати переменной с двойными кавычками и без них. Чтобы получить желаемый результат, пожалуйста, замените
echo $docker_images
с
echo "$docker_images"
Пожалуйста, обратитесь Захват многострочного вывода в переменную Bash для гораздо более подробного объяснения.
Поэтому я попробовал echo nl2br($output)
который дал мне это;
Это немного лучше, но все еще не отформатировано. Есть идеи как это улучшить?
Редактировать :
Это работает сейчас, я получаю вывод, который я хочу. Я просто должен был сделать это;
echo "<pre>";
echo nl2br($output) or $output;
echo "</pre>";
Ну, это в виде простого текста. Если кто-то захочет ими манипулировать, вы можете использовать Docker API. https://docs.docker.com/engine/api/v1.24/