1

我尝试制作 shell 脚本来自动化一些 ansible ad-hoc 命令。

例如

/usr/bin/ansible app -m shell -a 'echo $HOME'

我编写了一个简单的脚本来自动执行此类任务:

 #!/bin/bash
 set -x 
 ANS_BIN="/usr/bin/ansible"
 pattern="app"
 remote='echo $HOME'
 $ANS_BIN $pattern -m shell -a $remote

当我执行此操作时,无论我尝试了什么,简单的引用总是被误解。

./ans2.sh
+ ANS_BIN=/usr/bin/ansible
+ pattern=app
+ remote='echo $HOME'
+ /usr/bin/ansible app -m shell -a echo '$HOME' Usage: ansible <host-pattern> [options]

我知道有很多关于简单/双引号转义的问题,但我就是不明白!不可能让这个工作。我应该如何逃避这个?

4

1 回答 1

2

尝试在 Ansible 调用中引用变量,如下所示:

$ANS_BIN $pattern -m shell -a "$remote"
于 2015-10-06T11:15:00.153 回答