我有一个ansible playbook,其中包含几个任务,用于检查目录中是否存在今天创建的文件并将其保存在files
中。我正在对files|length
进行比较,并打印出两条不同的消息,具体取决于长度是否为0。
以下是代码:
- 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
继承人的输出:
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 :(得分:2)
您正在检查files|length
而不是files.stdout|length
。请注意,files
也是一个包含其他一些元素的字典,所以它绝对不是空的