我尝试制作 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]
我知道有很多关于简单/双引号转义的问题,但我就是不明白!不可能让这个工作。我应该如何逃避这个?