在jenkins-管道中,我试图使用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游乐场工作,但在jenkins管道中不起作用。
'"'"'-o StrictHostKeyChecking=no'"'"' /' file.txt发布于 2019-08-13 07:56:54
"包装sed命令,然后可以直接在命令中使用',而无需转义它。@,但是使用/作为sed s命令的分隔符,那么您就不需要转义文件路径中出现的/,从而使整个推荐更加简洁和可读性。sed -i "\$ s@\$@ public_file=/var/lib/jenkins/workspace/test-project ansible_ssh_common_args='-o StrictHostKeyChecking=no' @" file.txt发布于 2019-08-13 12:42:40
在bash中,不能在单引号中转义单引号。
单引号中包含的字符保留引号中每个字符的文字值。单引号之间可能不会出现单引号,即使在前面加上反斜杠时也是如此。
您可以使用双引号,然后根据需要转义它们。然后,您可以在其中使用单引号,而无需进一步转义。
https://stackoverflow.com/questions/57469069
复制相似问题