String 在Jenkinsfile中,双引号从作为参数传递给sh的字符串中删除

String 在Jenkinsfile中,双引号从作为参数传递给sh的字符串中删除,string,bash,jenkins,escaping,jenkins-pipeline,String,Bash,Jenkins,Escaping,Jenkins Pipeline,指定 sh "bash -c \"echo Hello world\"" 在Jenkinsfile中的声明性管道中 bash -c echo Hello world 正在执行。我希望字符串中双引号的转义被解析为双引号,如下所示 bash -c "echo Hello world" 现在,引号被简单地删除了,这是非常意外的,如果不是错误的话。我想了解正在发生的事情,并最终向詹金斯开发人员提出建议和改进 这可能是另一种情况,但我似乎找不到匹配的一个。您是否尝试过使用单引号: sh "bash

指定

sh "bash -c \"echo Hello world\""
Jenkinsfile
中的声明性管道中

bash -c echo Hello world
正在执行。我希望字符串中双引号的转义被解析为双引号,如下所示

bash -c "echo Hello world"
现在,引号被简单地删除了,这是非常意外的,如果不是错误的话。我想了解正在发生的事情,并最终向詹金斯开发人员提出建议和改进


这可能是另一种情况,但我似乎找不到匹配的一个。

您是否尝试过使用单引号:

sh "bash -c 'echo Hello world'"
另一个选择是

sh """bash -c "echo Hello world" """
这允许您在命令中保留需要插值的情况的双引号