如何在包含特殊字符的ansible中执行shell命令

如何在包含特殊字符的ansible中执行shell命令,ansible,Ansible,如何在ansible中使用特殊字符执行shell命令 --- - name: Displaying the ORACLE_HOME hosts: "{{ hostname }}" tasks: - name: shell: echo $ORACLE_HOME 我想要echo$ORACLE_HOME的输出,您需要这样写: --- - name: Displaying the ORACLE_HOME hosts: "{{ hostname }}" tas

如何在ansible中使用特殊字符执行shell命令

---
 - name: Displaying the ORACLE_HOME
   hosts: "{{ hostname }}"
   tasks:
   - name:
     shell: echo $ORACLE_HOME

我想要echo$ORACLE_HOME的输出,您需要这样写:

---
 - name: Displaying the ORACLE_HOME
   hosts: "{{ hostname }}"
   tasks:
   - name:
     shell: echo $ORACLE_HOME
     register: var

   - debug: msg="{{ var }}"

您可以在代码中使用注册变量
var.stdout

根据您的评论,使用以下命令在playbook中使用shell变量:

shell: source <Absolute-Path>/.bash_profile && echo $ORACLE_HOME
shell:source/.bash\u profile&&echo$ORACLE\u HOME

您遇到了哪些错误?你确切的剧本对我来说是有效的,我只是在检查“echo$SHELL”,它给了我输出。@Pacifist_AWS,我在这方面没有任何错误。但是输出我也无法获取您将无法在ansible中从这样的命令中获取任何输出,除非您在详细(
-vvv
)模式下运行任务结果和它,或者运行
ansible playbook
。@Zeitounator,在注册输出之前,我仍然无法获取输出我没有从该命令中获得任何输出。它与下划线的特殊字符冲突。你能告诉我如何克服它吗help@Raghu更新了答案。请检查它是否有效。我还有一个问题@Pacifist\u AWS。你能给我一个解决办法吗?@Raghu我可以试试。@Raghu没问题。如果你觉得,接受这个解决方案是一个有效的答案,因为它有助于其他人依赖这个解决方案。