我想执行以下包含双引号的命令:
- name: Initializing Kubernetes cluster
shell: kubeadm init --control-plane-endpoint "hostname:port"
不知道它是否会工作,就像我检查命令如下:
- debug:
msg: kubeadm init --control-plane-endpoint "hostname:port"
它给出了kubeadm init --control-plane-endpoint \"hostname:port\"
. 为什么输出在引号之间包含额外的反斜杠?该命令会按原样正确执行吗?或者由于双引号我必须添加一些内容?(我无法通过执行它来进行测试,因为它是生产服务器)
问:“为什么输出在引号之间包含额外的反斜杠?”
答:Ansible 对输出中的双引号进行转义,告诉您双引号是字符串的一部分。例如,
给出
给出
如果使用单引号样式,则不必转义双引号
给出
用于测试的完整剧本示例
问:“由于双引号(字符串),我是否必须添加一些内容?”
在下面的命令中,双引号将由 shell 解释
如果您希望双引号成为字符串的一部分,您可以将其转义
,或用单引号括起来
问:“双引号将由 shell 解释。对吗?”
答:对。脚本参数周围的引号的唯一目的是允许参数内有空格。例如,
给出