
Eu tenho um contêiner docker que quero executar e entregar algumas senhas. Um com ponto de exclamação !
e outro com e comercial &
. Então eu quero executar isso:
docker run -i -t --rm \
-e "LDAP_FILTER=(&(objectCategory=person)(objectClass=user)" \
-e "LDAP_PASS=Secret!Password" \
user-prefix/container-name
Isso não funciona. &
é substituído {LDAP_FILTER}
e !
fica truncado. Tenho certeza que tenho que escapar disso. Mas \!
e \&
não deu certo.
Responder1
Encontrei uma solução:
- Usando aspas simples em vez de aspas duplas
- Fuja do e comercial
&
para\&
- Não escapando do ponto de exclamação
!
então isso funciona:
docker run -i -t --rm \
-e 'LDAP_FILTER=(\&(objectCategory=person)(objectClass=user)' \
-e 'LDAP_PASS=Secret!Password' \
user-prefix/container-name
Responder2
Se você não puder usar aspas simples para toda a string por algum motivo (por exemplo, expansão de variável), esta é provavelmente a melhor solução:No bash, como faço para escapar de um ponto de exclamação?
Em resumo: Use "'!'"
próximo ao ponto de exclamação:
echo "hello there"'!'" and goodbye"