Qual é o significado de `-1` nas comparações de igualdade do Ansible?

Qual é o significado de `-1` nas comparações de igualdade do Ansible?

Estou examinando a documentação do Ansibleaquie veja o exemplo de registro de saída como uma variável mostra isso:

- 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

A verificação de igualdade na wheninstrução condicional é para -1, mas eu teria assumido que este era um valor booleano e, portanto, retornaria 0 ou 1. Não consigo encontrar nada na documentação que indique por que o caso negativo é -1 em vez de 0. Isso me preocupa porque é um comportamento fora do padrão e gostaria de saber que outros tipos de valores de retorno posso esperar nessas comparações e, em qualquer caso, o que é um sucesso? Um 0? Um 1?

Responder1

Isso ocorre porque o string.findmétodo Python retorna -1quando não consegue encontrar a substring solicitada.

Caso contrário, retorna o índice onde a string foi encontrada.

Você pode consultar oDocumento Python:

string.find(s, sub[, start[, end]]) Retorna o índice mais baixo em s onde a substring sub é encontrada de forma que sub esteja totalmente contido em s[start:end]. Retorna -1 em caso de falha.

informação relacionada