在Jenkins Pipeline中,我正在尝试使用SED将以下行追加到文件的末尾。
sh "sed -i '\$ s/\$/ public_file=\\/var\\/lib\\/jenkins\\/workspace\\/test-project\\ ansible_ssh_common_args='-o StrictHostKeyChecking=no' /' file.txt"
但我无法弄清楚如何在我的Jenkins文件中转义以下行以使其工作。
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
我已经尝试了以下内容,这在Katacoda Playground中有效,但在Jenkins管道中无效。
'"'"'-o StrictHostKeyChecking=no'"'"' /' file.txt
cat >>yourfile <<'EOF'
,然后是你想要添加的行,最后加上一个包含EOF
的行,这是一种百分之百有效的解决方案。 - Charles Duffy-o
和选项之间去掉空格,那么你根本不需要引号!也就是说,ansible_ssh_common_args=-oStrictHostKeyChecking=no
应该完全等效。 - Charles Duffy/
,则可以为 sed 使用替代分隔符。例如sed -e 's@/some/path/@/replacement@g
。比转义/
更清晰简洁。 - William Pursell