[英]Jenkins shell string quotation replacement
我有一个詹金斯的工作与执行外壳盒。 在执行外壳中,我使用bash而不是破折号(sh)。 在execute shell中,我有一些应该被解释为包含转义序列的字符串(在本例中为新行: \\n
),因此这里是一个示例execute shell:
#!/bin/bash
set -x #echo on
git fetch
...
git commit -m "Merging $DEVELOPEMENTBRANCH into $INITIALBRANCH\n\nThis is an example second paragraph."
...
我的问题是Jenkins以某种方式来解释/替换脚本块,从而改变其行为,具体来说,它替换变量并将双引号替换为单引号,因此在控制台输出中如下所示:
[4] $ /bin/bash /tmp/hudson7542128982632971668.sh
+ git fetch
...
+ git commit -m 'Merging my_feature into develop\n\nThis is an example second paragraph'
...
但是用这种方式\\n
部分不会因为单引号而被解释。 这有什么窍门? 我想保留双引号或至少解释\\n
序列。
git commit -m "A multi-line\\n\\ncommit message"
仍然不会产生多行提交消息。 从字面上看,提交消息将是A multi-line\\n\\ncommit message
。 双引号不会导致bash
解释printf
转义序列。
要获得多行提交消息,您需要:
git commit -m "`printf \"A multi-line\n\ncommit message\"`"
在Jenkins Shell步骤中,这可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.