Обработка на специални символи в Jenkins

Понякога, работейки с променливи, особено съдържащи специални символи (като $), трябва да подхождаме по-внимателно. ЗАБЕЛЕЖКА: Ако искате да тествате описаното по-долу, ще ви трябва машина с инсталирани Docker и Jenkins. Нека да вземем за пример този код на процес в Jenkins: pipeline { agent any environment { PASS='Pa$$word' } stages { stage('Clean') { steps { sh 'docker container rm --force $(docker container ls -aq) || true' } } stage('Escape Test #1 - NOK') { steps { sh 'docker container run -d --name db1 -e MYSQL_ROOT_PASSWORD=Pa$$word mariadb' } } stage('Escape Test #2 - NOK') { steps { sh "docker container run -d --name db2 -e MYSQL_ROOT_PASSWORD=Pa\$\$word mariadb" } } stage('Escape Test #3 - OK') { steps { sh "docker container run -d --name db3 -e MYSQL_ROOT_PASSWORD='Pa\$\$word' mariadb" } } stage('Escape Test #4 - OK') { steps { sh 'docker container run -d --name db4 -e MYSQL_ROOT_PASSWORD=\'Pa\$\$word\' mariadb' } } stage('Escape Test #5 - OK') { steps { sh '''docker container run -d --name db5 -e MYSQL_ROOT_PASSWORD='Pa$$word' mariadb''' } } stage('Escape Test #6 - OK') { steps { sh 'docker container run -d --name db6 -e MYSQL_ROOT_PASSWORD=$PASS mariadb' } } } } ЗАБЕЛЕЖКА: MYSQL_ROOT_PASSWORD в горния пример може да бъде заменено с MARIADB_ROOT_PASSWORD. ...

19 март 2026 г. · 3 мин · Димитър Захариев