Nasıl kaçılır “!” ve liman işçisinin çevre değişkenlerinde “&”


16

Çalıştırmak ve bazı parolaları teslim etmek istiyorum bir docker konteyner var. Biri ünlem işareti !, diğeri ve işareti vardır &. Yani bunu çalıştırmak istiyorum:

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

Bu çalışmıyor. &yerine geçer {LDAP_FILTER}ve !alın kesilir. Bunlardan kaçmam gerektiğine eminim. Ama \!ve \&yürümedi.


2
Tek tırnaklarla denediniz mi? İnterpolasyon için herhangi bir değişkeniniz olmadığından, burada tek tırnak işareti ile kaçabilirsiniz.
Zengin Homolka

1
Kör bir atış: -eParametre başka bir kabuk örneği tarafından yürütülürse, iki kez kaçmanız gerekebilir, bu yüzden \\\&ve öğesini deneyin \\\!.
mpy

@ \\\ hile benim için yaptı, bu en iyisi!
Simon Schnell

Yanıtlar:


17

Bir çözüm buldum:

  • Çift tırnak yerine tek tırnak kullanma
  • Ve işareti kaçmak &için\&
  • Ünlem işaretinden kaçmamak !

yani bu işe yarıyor:

docker run -i -t --rm \
-e 'LDAP_FILTER=(\&(objectCategory=person)(objectClass=user)' \
-e 'LDAP_PASS=Secret!Password' \
user-prefix/container-name
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.