web-dev-qa-db-fra.com

Comment s'échapper "!" et "&" dans les variables d'environnement de docker

J'ai un conteneur de docker que je veux exécuter et le donner quelques mots de passe. Une avec un point d'exclamation ! et l'autre avec un esperluette &. Donc je veux lancer ceci:

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

Cela ne fonctionne pas. & est remplacé par {LDAP_FILTER} et le ! est tronqué. Je suis presque sûr que je dois échapper à ceux-ci. Mais \! et \& n'ont pas fonctionné.

14
DASKAjA

J'ai trouvé une solution:

  • Utiliser des guillemets simples au lieu de guillemets doubles
  • Échappez l'esperluette & en \&
  • N'échappe pas au point d'exclamation !

alors ça marche:

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