首页 > 解决方案 > 在 groovy jenkins 管道中转义 shell 字符

问题描述

我有一些问题要在我的詹金斯管道中转义引号字符。例如 :

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

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 );  

标签: shelljenkinsgroovyjenkins-pipelineopenshift

解决方案


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

我会尝试类似的东西

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

请注意,我不会将定义添加到 wp-config.php 文件中,而是尝试将默认 WP_HOME 版本化并用 sed 替换它


推荐阅读