Каково значение `-1` в сравнениях на равенство Ansible?

Каково значение `-1` в сравнениях на равенство Ansible?

Я просматриваю документацию Ansibleздесьи посмотрите пример регистрации вывода в качестве переменной, который показывает это:

- name: test play
  hosts: all

  tasks:

      - shell: cat /etc/motd
        register: motd_contents

      - shell: echo "motd contains the word hi"
        when: motd_contents.stdout.find('hi') != -1

Проверка равенства в whenусловном операторе выполняется для -1, но я бы предположил, что это логическое значение, и, таким образом, вернул бы либо 0, либо 1. Я не могу найти в документации ничего, что указывало бы на то, почему отрицательный случай равен -1, а не 0. Это беспокоит меня, поскольку это нестандартное поведение, и я хотел бы знать, какие еще типы возвращаемых значений я могу ожидать при таких сравнениях, и в любом случае, что является успехом? 0? 1?

решение1

Это происходит потому, что метод Python string.findвозвращает значение -1, когда не может найти запрошенную подстроку.

В противном случае возвращается индекс, по которому была найдена строка.

Вы можете обратиться кPython-документ:

string.find(s, sub[, start[, end]]) Возвращает наименьший индекс в s, где найдена подстрока sub, которая полностью содержится в s[start:end]. Возвращает -1 в случае неудачи.

Связанный контент