簡體   English   中英

在 groovy jenkins 管道中轉義 shell 字符

[英]Escaping shell character in groovy jenkins pipeline

我有一些問題要在 jenkins 管道中轉義引號字符。 例如 :

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

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 命令有一個簡單的引號,定義中有一個簡單的引號。

我會嘗試類似的東西

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

請注意,我不會將定義添加到 wp-config.php 文件,而是傾向於將默認的 WP_HOME 版本化並用 sed 替換它

我找到了如何處理它。 我決定使用雙引號並用兩個反斜杠轉義,而不是使用簡單的引號。

像這樣:

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

現在它可以完美運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM