groovy-jenkins管道中的转义shell字符

groovy-jenkins管道中的转义shell字符,shell,jenkins,groovy,jenkins-pipeline,openshift,Shell,Jenkins,Groovy,Jenkins Pipeline,Openshift,我有一些问题要逃避詹金斯管道中的引用字符。例如: 我想使用以下命令通过管道将文本附加到文件中: openshift.rsh("${podname}", """sh -c 'echo "define( 'WP_HOME', 'http://rabah-test.com' );" >> wp-config.php'""") 在wp-config.php文件中应包含以下内容: define( 'WP_HOME', 'http://rabah-test.com' ); 但不幸的是,我的结

我有一些问题要逃避詹金斯管道中的引用字符。例如:

我想使用以下命令通过管道将文本附加到文件中:

openshift.rsh("${podname}", """sh -c 'echo "define( 'WP_HOME', 'http://rabah-test.com' );" >> wp-config.php'""")
在wp-config.php文件中应包含以下内容:

define( 'WP_HOME', 'http://rabah-test.com' );
但不幸的是,我的结果中没有引号:

define( WP_HOME, http://rabah-test.com );  

我相信这不是詹金斯的问题。首先尝试在终端中运行您的命令。 sh命令有一个简单的引号,define命令中有简单的引号

我想试试这样的东西

sh -c 'echo "define( \'WP_HOME\', \'http://rabah-test.com\' );" >> wp-config.php'

注意,我不会将define添加到wp-config.php文件中,而是尝试将默认wp_HOME版本化,并将其替换为sed,我发现了如何处理它。我决定不使用简单的引号,而是使用双引号和带两个反斜杠的转义

像这样:

sh -c 'echo "define( \\" WP_HOME \\" , \\" http://rabah-test.com \\" );" >> wp-config.php'

现在它工作得很好。

在终端中尝试,效果很好,但在管道中仍然没有报价