Qual é o significado de '-1' em comparações de igualdade Ansible?

1

Estou analisando a documentação do Ansible aqui e vejo o exemplo para registrar a 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 instrução condicional when é para -1, mas eu teria assumido que isso é um valor booleano e, portanto, retornaria um 0 ou um 1. Não consigo encontrar nada na documentação que aponta por que o caso negativo é -1 em vez de 0. Isso me preocupa porque é um comportamento não-padrão, e gostaria de saber quais outros tipos de valores de retorno eu posso esperar em tais comparações, e em qualquer caso, o que é um sucesso? Um 0? Um 1?

    
por LegendaryDude 20.03.2018 / 17:09

1 resposta

2

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

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

Você pode consultar o documento do Python :

string.find(s, sub[, start[, end]]) Return the lowest index in s where the substring sub is found such that sub is wholly contained in s[start:end]. Return -1 on failure.

    
por 20.03.2018 / 17:36

Tags