избежать кавычек, используя Sed в Дженкинс Пиплайн Ш шаг - PullRequest
0 голосов
/ 20 января 2019

Нужно вставить значение переменной в шаг sh, используя sed, но получить пустой результат Вот код:

#!/usr/bin/env groovy

def call(def cap_server){
    dir("ruby"){
        cap_server="pidor"
        sh '''bundle install'''
        sh '''sed -i "1i server '${cap_server}', user: 'ubuntu', roles: %w{web app db sidekiq}, ssh_options:{ keys: %w(~/.ssh/id_rsa)}" config/deploy/qa.rb'''
        sh '''bundle exec cap qa deploy'''
    }
}

А вот и результат:

+ sed -i 1i server '', user: 'ubuntu', roles: %w{web app db sidekiq}, ssh_options:{ keys: %w(~/.ssh/id_rsa)} config/deploy/qa.rb

1 Ответ

0 голосов
/ 20 января 2019

Вам нужно использовать двойные кавычки, чтобы создать сильный шаблон

sh """sed -i "1i server '${cap_server}', user: 'ubuntu', roles: %w{web app db sidekiq}, ssh_options:{ keys: %w(~/.ssh/id_rsa)}" config/deploy/qa.rb"""
...