Как оценить выход оболочки во время выполнения и создать условия, основанные на этом? - PullRequest
0 голосов
/ 16 мая 2019

Я запускаю команду docker kill $(docker ps -aq) с использованием Jenkins, но это не удается, поскольку, если не запущен докер-контейнер, вывод $(docker ps -aq) будет равен 0, что приведет к ошибке docker kill, а задание jenkins завершится неудачей.

Как это предотвратить?

Думал что-то вроде:

if ( $(docker ps -aq) > 0)
then docker kill $(docker ps -aq)
fi

, но, похоже, синтаксис не работает.

Какой здесь хороший подход?Спасибо.

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Вероятно, самый простой способ - использовать xargs (1) для перевода стандартного вывода из docker ps в аргументы командной строки в docker kill. Если аргументов нет, команда не запускается; если в одной командной строке больше аргументов, чем умещается, она будет запускаться несколько раз.

docker ps -aq | xargs docker kill
0 голосов
/ 16 мая 2019

Должно работать в системе Linux:

if [[ $(docker ps -aq) -gt 0 ]]; then
    docker kill $(docker ps -aq)
else
    echo "There is no docker container running"
fi

Или вы можете изменить -gt на !=.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...