第一行:/u01/app/oracle/oradata/TEST/
第二行:/u02/
如何使用同一个变量读取同一行中的两行,我想通过ansible中的shell命令了解当前的工作目录
答案 0 :(得分:1)
下面的任务从文件创建行列表
- set_fact:
lines_list: "{{ lines_list|default([]) + [item] }}"
with_lines: cat /path/to/file
可以创建两个列表
"lines_list": [
"/u01/app/oracle/oradata/TEST/",
"/u02/"
]
和字典
"lines_dict": {
"0": "/u01/app/oracle/oradata/TEST/",
"1": "/u02/"
}
使用 combine 过滤器
- set_fact:
lines_dict: "{{ lines_dict|default({})|combine({idx: item}) }}"
with_lines: cat /path/to/file
loop_control:
index_var: idx
可以从已注册的变量中打印“通过shell命令当前存在的工作目录”。例如
- command: echo $PWD
register: result
- debug:
var: result.stdout
(未经测试)
答案 1 :(得分:1)
您可以使用命令从磁盘读取文件
- name: Read a file into a variable
command: cat /path/to/your/file
register: my_variable
然后执行以下操作,循环遍历文件中的行。
- debug: msg="line: {{ item }}"
loop: y_variable.stdout_lines