Передача вывода оболочки в переменную в задании Jenkins - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть сценарий с конвейером Jenkins. Я хочу передать вывод команды docker inspect переменной. Затем я хочу использовать эту переменную позже в других шагах.

Ниже приведена команда, которая отобразит Ma c -адрес. Я хочу, чтобы выходные данные этой команды были сохранены в переменной.

docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID

Я пробовал это, но у меня это не сработало.

  output = sh(
  returnStdout: true, 
  script: 'docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID'
  )

Может ли кто-нибудь подсказать мне, что в этом плохого, или предложить другие способы сохранить вывод в переменной.

1 Ответ

4 голосов
/ 23 апреля 2020

Проблема в том, что вы используете одинарные кавычки в скрипте и также заключаете его в одинарные кавычки, поэтому Jenkins запускает docker inspect --format=, который ничего не должен возвращать. Попробуйте обернуть скрипт двойными кавычками

output = sh(
  returnStdout: true, 
  script: "docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID"
  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...