Ansible の等価比較における `-1` の意味は何ですか?

Ansible の等価比較における `-1` の意味は何ですか?

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 のいずれかを返します。ドキュメントには、負のケースが 0 ではなく -1 である理由を示すものは何も見つかりません。これは非標準の動作であるため、心配です。このような比較で期待できる他の種類の戻り値と、いずれにしても成功とは何なのかを知りたいです。0 ですか? 1 ですか?

答え1

これは、要求された部分文字列が見つからない場合にPythonstring.findメソッドが返されるためです。-1

それ以外の場合は、文字列が見つかったインデックスを返します。

参照するにはPython ドキュメント:

string.find(s, sub[, start[, end]]) s 内で部分文字列 sub が見つかった最小のインデックスを返します。sub は s[start:end] に完全に含まれることになります。失敗した場合は -1 を返します。

関連情報