¿Cuál es el significado de "-1" en las comparaciones de igualdad de Ansible?

¿Cuál es el significado de "-1" en las comparaciones de igualdad de Ansible?

Estoy revisando la documentación de Ansible.aquíy vea el ejemplo para registrar la salida como una variable que muestra esto:

- 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

La verificación de igualdad en la whendeclaración condicional es para -1, pero habría asumido que se trata de un valor booleano y, por lo tanto, devolvería un 0 o un 1. No puedo encontrar nada en la documentación que indique por qué el caso negativo es -1 en lugar de 0. Esto me preocupa porque no es un comportamiento estándar y me gustaría saber qué otros tipos de valores de retorno puedo esperar en tales comparaciones y, en cualquier caso, ¿qué es un éxito? ¿Un 0? ¿Un 1?

Respuesta1

Esto se debe a que el string.findmétodo Python regresa -1cuando no puede encontrar la subcadena solicitada.

De lo contrario, devuelve el índice donde se encontró la cadena.

Puedes consultar elDocumento de Python:

string.find(s, sub[, start[, end]]) Devuelve el índice más bajo en s donde se encuentra la subcadena sub de manera que sub esté completamente contenida en s[inicio:fin]. Devuelve -1 en caso de error.

información relacionada