
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
이는 요청된 하위 문자열을 찾을 수 없을 때 Python string.find
메서드가 반환되기 때문입니다.-1
그렇지 않으면 문자열이 발견된 인덱스를 반환합니다.
당신은파이썬 문서:
string.find(s, sub[, start[, end]])
sub가 s[start:end]에 완전히 포함되도록 하위 문자열 sub가 발견된 s에서 가장 낮은 인덱스를 반환합니다. 실패하면 -1을 반환합니다.