1

ansibleアドホックコマンドを自動化するシェルスクリプトを作成しようとしています。

例えば

/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 に答える