2017-05-15 3 views
1

私はchfnコマンドを実行するためにシェルを使用してかなり単純ansibleアドホックコマンドを持っている:潜在的なアドホックシェルコマンドは引用符の中で引用します - どのようにエスケープするのですか?

ansible all -i ./inventory/all -s -K -m shell -a 'chfn -f "$HOSTNAME root" root' 

chfnコマンドは、二重引用符を必要とし、私は運でそれらをエスケープするには、いくつかの異なる方法を試してみました。シェルコマンドを二重引用符と一重引用符で囲み、/を使用して二重引用符をエスケープし、一重引用符も試してみました。実行chfn -f "$HOSTNAME root" rootはうまく動作しますが、私はこのように実行する方法を理解することができません。 (私はそれがオプションだと知っていますが、私はむしろそれをシェルスクリプトに変えて、可能ならばそれを実行します)

答えて

0

これはアドホックコマンドでは難しいです。それをそのまま渡したい場合は、引用符をエスケープする必要があります。以下のいくつかの例:

ansible localhost -a 'echo \"$HOSTNAME\"' 
localhost | SUCCESS | rc=0 >> 
"$HOSTNAME" 

ansible localhost -a "echo $HOSTNAME" 
localhost | SUCCESS | rc=0 >> 
my_hostname 
関連する問題