GNU/Linux >> Belajar Linux >  >> Linux

Kemungkinan bersyarat berdasarkan stdout hasil?

Coba periksa untuk melihat apakah sama dengan string kosong atau tidak?

- hosts: myhosts
  tasks:
  - name: echo hello
    command: echo hello
    register: result
  - command: somecommand {{ result.stdout }}
    when: result.stdout != ""
  - command: someothercommand
    when: result.stdout == ""

Pada 2018, cara yang disarankan untuk menguji apakah output kosong adalah:

when: result.stdout | length > 0

Itu adalah cara pythonic mengevaluasi kebenaran, null, string kosong, daftar kosong semuanya dievaluasi sebagai salah.

Alternatif lama lainnya tidak disarankan atau bahkan tidak berfungsi:

  • result.stdout != "" tidak akan lulus pemeriksaan serat yang memungkinkan!
  • result.stdout | bool TIDAK akan berfungsi karena sebagian besar string akan dievaluasi sebagai False, hanya kasus di mana ia akan mengembalikan true adalah jika stdout kebetulan salah satu dari true , yes ,... jenis string.
  • result.stdout dulu berfungsi tetapi sekarang memicu:

[PERINGATAN DEPRECASI]:mengevaluasi sebagai variabel kosong, perilaku ini akan hilang dan Anda mungkin perlu menambahkan |bool ke ekspresi di masa mendatang. Lihat juga tombol konfigurasi CONDITIONAL_BARE_VARS.. Fitur ini akan dihapus di versi 2.12. Peringatan penghentian dapat dinonaktifkan dengan mengatur deprecation_warnings=False inansible.cfg.`


Linux
  1. Mendekonstruksi buku pedoman Ansible

  2. Periksa apakah database mysql ada, lakukan tindakan berdasarkan hasil

  3. Kemungkinan:sudo tanpa kata sandi

  1. Memahami YAML untuk Ansible

  2. Cara membuat Playbook yang Mungkin

  3. Hasil Ls * , Ls ** Dan Ls ***?

  1. Kompilasi bersyarat dalam C++ berdasarkan sistem operasi

  2. Rotasi log stdout?

  3. Android - Apakah Android berbasis Linux?