"!"를 탈출하는 방법 도커의 환경 변수에서 "&"


16

도커 컨테이너가 있는데 암호를 실행하고 넘겨주고 싶습니다. 하나는 느낌표가 !있고 다른 하나는 앰퍼샌드가 &있습니다. 그래서 이것을 실행하고 싶습니다 :

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

작동하지 않습니다. &로 대체됩니다 {LDAP_FILTER}!GET가 잘립니다. 나는 이것들을 피해야한다고 확신한다. 그러나 \!\&작동하지 않았다.


2
작은 따옴표로 시도해 보셨습니까? 보간 할 변수가 없으므로 여기에서 작은 따옴표를 사용하면됩니다.
Rich Homolka 2016 년

1
블라인드 샷 다음 경우 -e매개 변수가 다른 쉘 인스턴스에 의해 실행됩니다, 두 번 탈출, 그래서 시도 할 수 있습니다 \\\&\\\!.
mpy

@mpy \\\ 트릭이 나를 위해 해냈습니다.
Simon Schnell

답변:


17

해결책을 찾았습니다.

  • 큰 따옴표 대신 작은 따옴표 사용
  • 앰퍼샌드 탈출 &로를\&
  • 느낌표를 이탈하지 않음 !

그래서 이것은 작동합니다 :

docker run -i -t --rm \
-e 'LDAP_FILTER=(\&(objectCategory=person)(objectClass=user)' \
-e 'LDAP_PASS=Secret!Password' \
user-prefix/container-name
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.