Двойные кавычки удаляются из строки, переданной в качестве аргумента sh в Jenkinsfile - PullRequest
0 голосов
/ 07 февраля 2020

Указание

sh "bash -c \"echo Hello world\""

в декларативном конвейере в Jenkinsfile приводит к выполнению

bash -c echo Hello world

. Я ожидаю, что экранирование двойных кавычек в строке будет разрешено в двойные кавычки, например:

bash -c "echo Hello world"

Теперь кавычки просто удаляются, что очень неожиданно, если не глючит. Я хотел бы понять, что происходит, и в конечном итоге предложить и улучшить разработчикам Jenkins.

Это может быть еще один случай Jenkinsfile идиосинхронизаций с экранированием и кавычками , однако я, кажется, не найти подходящий.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2020

Другой вариант -

sh """bash -c "echo Hello world" """

Это позволяет вам хранить двойные кавычки для случаев, которые вам нужны для интерполяции, внутри вашей команды.

0 голосов
/ 08 февраля 2020

Вы пытались играть с одинарной цитатой:

sh "bash -c 'echo Hello world'"
...