Prova a controllare se è uguale a una stringa vuota o no?
- hosts: myhosts
tasks:
- name: echo hello
command: echo hello
register: result
- command: somecommand {{ result.stdout }}
when: result.stdout != ""
- command: someothercommand
when: result.stdout == ""
A partire dal 2018, il modo consigliato per verificare se l'output è vuoto è solo:
when: result.stdout | length > 0
Questo è il modo pitonico di valutare verità, null, stringhe vuote, elenchi vuoti valutati tutti come falsi.
Altre alternative meno recenti sconsigliate o addirittura non funziona:
result.stdout != ""
non supererebbe il controllo ansible-lint!result.stdout | bool
NON funzionerà poiché la maggior parte delle stringhe verrà valutata come False, solo i casi in cui restituirà true è se stdout risulta essere uno deitrue
,yes
,... tipo di stringhe.result.stdout
prima funzionava ma ora si attiva:
[AVVISO DI DEPRECAZIONE]:valutando come variabile semplice, questo comportamento scomparirà e potrebbe essere necessario aggiungere |bool all'espressione in futuro. Vedi anche CONDITIONAL_BARE_VARS configurationtoggle.. Questa funzione verrà rimossa nella versione 2.12. Gli avvisi di deprecazione possono essere disabilitati impostando deprecation_warnings=False inansible.cfg.`