Zkuste zkontrolovat, zda se rovná prázdnému řetězci nebo ne?
- hosts: myhosts
tasks:
- name: echo hello
command: echo hello
register: result
- command: somecommand {{ result.stdout }}
when: result.stdout != ""
- command: someothercommand
when: result.stdout == ""
Od roku 2018 je doporučený způsob testování, zda je výstup prázdný, pouze:
when: result.stdout | length > 0
To je pythonic způsob vyhodnocování pravdivosti, null, prázdných řetězců, prázdných seznamů, všechny jsou hodnoceny jako nepravdivé.
Jiné starší alternativy nedoporučujeme nebo dokonce nefunguje:
result.stdout != ""
neprošel by kontrolou ansible-lint!result.stdout | bool
NEBUDE fungovat, protože většina řetězců bude vyhodnocena jako False, pouze případy, kdy by to vrátilo true, je, pokud je stdout náhodou jedním ztrue
,yes
,... druh strun.result.stdout
dříve fungoval, ale nyní spouští:
[VAROVÁNÍ PŘEDPOKLADEM]:při vyhodnocení jako holé proměnné toto chování zmizí a v budoucnu možná budete muset do výrazu přidat |bool. Viz také přepínač konfigurace CONDITIONAL_BARE_VARS. Tato funkce bude ve verzi 2.12 odstraněna. Upozornění na ukončení podpory lze zakázat nastavením deprecation_warnings=False inansible.cfg.`
Obnovte net.core.somaxcomm (nebo jakoukoli vlastnost sysctl) pro kontejnery dokovacích stanic
Umístění JConsole v Linuxu