跳到内容

empty-string-compare

此规则检查剧本中的空字符串比较。为了确保代码清晰,您应该避免在带有 when 子句的条件语句中使用空字符串。

  • 使用 when: var | length > 0 而不是 when: var != ""
  • 使用 when: var | length == 0 而不是 when: var == ""

这是一个可选规则。您必须在 Ansible-lint 配置中启用它,如下所示

enable_list:
  - empty-string-compare

有问题代码

---
- name: Example playbook
  hosts: all
  tasks:
    - name: Shut down
      ansible.builtin.command: /sbin/shutdown -t now
      when: ansible_os_family == "" # <- Compares with an empty string.
    - name: Shut down
      ansible.builtin.command: /sbin/shutdown -t now
      when: ansible_os_family !="" # <- Compares with an empty string.

正确代码

---
- name: Example playbook
  hosts: all
  tasks:
    - name: Shut down
      ansible.builtin.shell: |
        /sbin/shutdown -t now
        echo $var ==
      when: ansible_os_family