nepster-web
@nepster-web

Как использовать ifeq для проверки вывода команды?

Работаю с Makefile, у меня есть команда:
docker-compose exec php-bundle /bin/bash -c "getent passwd docker"


Она возвращает данные о пользователе docker в контейнере docker, результат может быть таким, либо если пользователь не создан, то пустота:
docker:x:1000:1000::/home/docker:/bin/sh

В Makefile мне нужно сделать проверку на существование пользователя в контейнере, тоесть выполнить данную команду, как-то так:

ifeq (ПОЛЬЗОВАТЕЛЬ В КОНТЕЙНЕРЕ СУЩЕСТВУЕТ)
  //
endif


Тоесть, получается как-то так:
ifeq ($(docker-compose exec php-bundle /bin/bash -c "getent passwd docker"), )
	 echo 1
endif


Команда отрабатывает, однако я никогда не попадаю в условие. Подскажите, пожалуйста как это можно порешать ?
  • Вопрос задан
  • 183 просмотра
Решения вопроса 1
nepster-web
@nepster-web Автор вопроса
Походу, зашло как-то так:

ifeq ($(shell docker-compose exec php-bundle /bin/bash -c "getent passwd docker"),)
	//
else
	echo User "docker" already exists
endif


В общем скорее всего проблема была в наличии лишнего пробела.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
А если так

($(docker-compose exec php-bundle /bin/bash -c "if getent passwd docker; then echo 1; fi"), )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы