Страницы

Поиск по вопросам

пятница, 14 февраля 2020 г.

grep в конструкции if

#linux #bash #docker #grep


Разбираюсь с bash'ем
Хочу написать скрипт для работы с докером, столкнулся с непониманием работы синтаксиса
bash.
Пример скрипта такой:

#!/bin/bash
result=$(docker ps)
container=container_name
if $result | grep $container
then
echo "$container is work"
fi


Если контейнер с именем container_name запущен то по идее мы должны пройти условие,
но получается такая ошибка:

./mscript.sh: line 4: CONTAINER: command not found

    


Ответы

Ответ 1



Все штатно. просто сделайте подстановку всех переменных и посмотрите что получается. bash пытается выполнить $result как команду. Скорее всего Вы имели ввиду такое echo $result | grep $container

Ответ 2



Дружище, изучите docker, то что вы делаете через if, grep и т.д. делается внутри команды docker ps: $ docker ps --no-trunc -af name="^*$" -f status="running" --format "{{.ID}}: {{.Status}}" 0c9b82211c4da46d2af47f30fd1f90150173b70d29574030e6eadc399c9f58a8: Up 3 days 32b8a98772a4b0520252aba1eee944251c72c404d5ddef0a71f59f82d385926f: Up 2 weeks f394c4b1dbec886c75880ae217a6243dde44ed4dc81d7c0cea533339140c5d01: Up 3 days 2e02efb775c34b945e97dbdea41da9776aa05c83789520eaf32544dad8980db1: Up 2 weeks 451524ce8dc85a63d60f561b436c646ba8f2141346a14a21d1c16709cbed6441: Up 2 weeks e0aa486fa921109c512640a49d07aa1b33a72ab9d64446614cbc44e475f26848: Up 2 weeks

Комментариев нет:

Отправить комментарий