Рейтинг:0

Невозможно использовать цикл for с использованием bash в конвейере Jenkins

флаг pe

Ниже приведен мой код

     stage('Подключиться к кластеру (обновить kubeconfig)') {
        шаги {
            сценарий {
                dir("${env.WORKSPACE}/gke-infra-creation") {
                деф jsonObj;
                jsonObj = файл readJSON: 'parameters.json'

                sh "кластеры контейнеров gcloud get-credentials ${jsonObj.cluster_name} --zone ${jsonObj.zone} --project ${jsonObj.project}"
            
                sh "для \i в ${jsonObj.ns}; сделать kubectl создать пространство имен $i}; готово"
           
                sh "kubectl получить узлы"
                
                }                
            }
        }
    }

Он не работает с ошибкой ниже

  org.codehaus.groovy.control.MultipleCompilationErrorsException: сбой запуска:
  WorkflowScript: 53: неожиданный символ: '\' @ строка 53, столбец 29.
                   sh "для \i в ${jsonObj.ns}; сделать kubectl создать пространство имен $i}; готово"
                           ^

  1 ошибка

  в org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:309)

Если я попытаюсь использовать $i, произойдет сбой с ошибкой ниже

 hudson.remoting.ProxyException: groovy.lang.MissingPropertyException: нет такого свойства: i для класса: WorkflowScript

Любые предложения по решению этой проблемы.

флаг cn
попробуйте использовать двойную обратную косую черту `for \i `
Рейтинг:1
флаг jp
  • Первое я не имеет специальных символов, поэтому его вообще не нужно экранировать.
  • Правильный способ избежать литерала $ является \$.
  • У вас есть посторонняя скобка после $ я.

Пытаться:

sh "для i в ${jsonObj.ns}; сделать kubectl создать пространство имен \$i; готово"

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

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.