web-dev-qa-db-ja.com

脱出方法「!」およびDocker環境変数の「&」

実行したいdockerコンテナーがあり、いくつかのパスワードを渡します。 1つには感嘆符!があり、もう1つにはアンパサンド&があります。だから私はこれを実行したいです:

docker run -i -t --rm \
-e "LDAP_FILTER=(&(objectCategory=person)(objectClass=user)" \
-e "LDAP_PASS=Secret!Password" \
user-prefix/container-name

それは機能しません。 &{LDAP_FILTER}に置き換えられ、!は切り捨てられます。私はこれらをエスケープする必要があると確信しています。しかし、\!\&はうまくいきませんでした。

17
DASKAjA

私は解決策を見つけました:

  • 二重引用符の代わりに単一引用符を使用する
  • アンパサンドをエスケープする&から\&
  • 感嘆符をエスケープしない!

これはうまくいきます:

docker run -i -t --rm \
-e 'LDAP_FILTER=(\&(objectCategory=person)(objectClass=user)' \
-e 'LDAP_PASS=Secret!Password' \
user-prefix/container-name
18
DASKAjA