2017-03-09 36 views
1

今日の日付に作成されたファイルをディレクトリでチェックし、filesに保存するタスクが2つあります。 files|lengthの私の比較をオフにして、長さが0かどうかによって2つの異なるメッセージを出力します。条件文が正しく評価されていない

- name: Grabbing all of the files that were created today 
    shell: find /home/user/empty_directory -maxdepth 1 -daystart -ctime 0 -print 
    register: files 

    - debug: var=files.stdout 

    - debug: msg="The directory isn't empty" 
    when: files|length != 0 

    - debug: msg="The directory is empty" 
    when: files|length == 0 

HERESに出力:ここ

はコードである

TASK [debug] 
ok: [server] => { 
"changed": false, 
"files.stdout": "" 
} 

TASK [debug] 
ok: [server] => { 
"changed": false, 
"msg": "The directory isn't empty" 
} 

TASK [debug] 
skipping: [server] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true} 

私は条件文が誤って評価することが原因となっている作っています間違いはありますか?出力filesのオフに基づいているので、私は|lengthせずにそれを試してみましたが、files == "" & files != ""のオフに私の比較を行って、同じ結果を持っている

空事実です。

ご意見をいただければ幸いです。

+0

あなたは 'files.stdout | length'ではなく' files | length'をチェックしています。 'files'にもいくつかの変数がありますので、間違いなく空ではありません。 – SztupY

+0

@SztupY - 助けてくれてありがとう!あなたの提案はうまくいった。あなたが答えとしてそれを掲示すれば、私はそれを決めるだろう –

答えて

2

files.stdout|lengthの代わりにfiles|lengthをチェックしています。 filesは他のいくつかの要素も含んでいる辞書なので、間違いなく空ではありません。

関連する問題