【问题标题】:Ansible escaping double quotes and single quotesAnsible 转义双引号和单引号
【发布时间】:2015-10-07 12:44:40
【问题描述】:

我想用这个 ansible 命令在 nrpe.cfg 中插入一个 nrpe 命令

check_tomcat_threads.pl -H localhost -p 30011 -C '"http-bio-30011"' -w 200 -c 50

但问题是 '" 和 "'

要在 nrpe.cfg 中设置这一行,请使用命令

 - { regexp: '^command\[SERVICE_tomcat_pi_Threads\]', line: "command[SERVICE_tomcat_Threads_pi]=/appiu/monitoring/check_tomcat_threads.pl -H localhost -p 30011 -C '\"http-bio-30011\"' -w 200 -c 50" }

但 nrpe.cfg 中的结果是

...-C http-bio-30011..

如果我在 ansible 脚本中使用 ''\"http-bio-30011\"''

nrpe.cfg 中的结果是

...-C "http-bio-30011"... 

我怎样才能转义单引号和双引号来得到这个-C '"http-bio-30011"'

问候乔治

【问题讨论】:

  • 如果回答对你有帮助,最好accept它。

标签: escaping ansible double-quotes single-quotes


【解决方案1】:

这是lineinfile 模块中的bug

从 YAML 的角度来看,正确的语法如下(但只有在修复错误时才会起作用)。你应该 escape 在双引号文字中只使用两个字符 "\

line: "command[SERVICE_tomcat_Threads_pi]=/appiu/monitoring/check_tomcat_threads.pl -H localhost -p 30011 -C '\"http-bio-30011\"' -w 200 -c 50"

要临时解决它,您可以使用:

line: 'command[SERVICE_tomcat_Threads_pi]=/appiu/monitoring/check_tomcat_threads.pl -H localhost -p 30011 -C \''"http-bio-30011"\'' -w 200 -c 50'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2013-06-30
    • 2013-08-09
    • 1970-01-01
    • 2021-05-15
    • 2020-11-26
    • 2016-12-17
    相关资源
    最近更新 更多