我正在试着运行这本不可信的剧本
- name: Network Getting Started First Playbook Extended
gather_facts: false
hosts: localhost
tasks:
- name: Disable wolverine
shell: 'kubectl -n testns exec dashmpp-head-0 -c container -- bash -c "list versions | grep -w 20220928025228 | awk '{print $9}'"'
register: target_db2_version
failed_when: target_db2_version.stdout == "" or target_db2_version.stderr != ""这一点一直未能实现,原因是:
shell: 'kubectl -n testns exec dashmpp-head-0 -c container -- bash -c "list versions | grep -w 20220928025228 | awk '{print $9}'"'
^ here这里的问题是awk '{print $9}'部件。如果我删除该命令,则该命令可以正常工作。
这是我已经尝试过的
fine
awk \'{print $9}\'
awk '{print \$9}'
awk \'\{print \$9\}\'
command指令而不是shell
来工作command。
发布于 2022-09-28 03:47:50
您应该使用两个单引号来表示YAML中单引号字符串中的文字单引号:
shell: 'kubectl -n testns exec dashmpp-head-0 -c container -- bash -c "list versions | grep -w 20220928025228 | awk ''{print $9}''"'或者,在这种情况下,不需要以单引号开头的字符串括起来:
shell: kubectl -n testns exec dashmpp-head-0 -c container -- bash -c "list versions | grep -w 20220928025228 | awk '{print $9}'"https://stackoverflow.com/questions/73875940
复制相似问题