我正在运行一个任务,想查看运行的任务返回的列表中是否存在子字符串。
该任务使用win_shell
模块并执行以下命令:netstat -aon | sls 8080"
在进程正在运行的情况下,结果将如下所示:
stdout_lines: [
"",
"",
" TCP 127.0.0.1:8080 0.0.0.0:0 LISTENING 9196",
""
]
在python中,我将执行类似的操作来检查列表中的元素中是否存在子字符串。
matching = [s for s in some_list if "8080" in s]
有没有办法做到这一点?
答案 0 :(得分:1)
我看到两个选择。
首先,您可以执行以下操作:
- name: Capture output for analysis
shell: "netstat -aon | sls 8080"
register: netstat_output
- name: Check if the substring is in the output
command: <do something else>
when: "'some word' in {{netstat_output.stdout}}"
另一种选择是突破Python脚本并利用它,如果上述内容仍不能完全满足您的需求。
- name: Run verification in Python
script: some-script.py
希望这会有所帮助!