
Tengo un contenedor acoplable que quiero ejecutar y entregarle algunas contraseñas. Uno con un signo de exclamación !
y el otro con un signo comercial &
. Entonces quiero ejecutar esto:
docker run -i -t --rm \
-e "LDAP_FILTER=(&(objectCategory=person)(objectClass=user)" \
-e "LDAP_PASS=Secret!Password" \
user-prefix/container-name
Eso no funciona. &
se reemplaza {LDAP_FILTER}
y !
se trunca. Estoy bastante seguro de que tengo que escapar de ellos. Pero \!
y \&
no funcionó.
Respuesta1
Encontré una solución:
- Usar comillas simples en lugar de comillas dobles
- Escapar del signo comercial
&
a\&
- Sin escapar del signo de exclamación
!
entonces esto funciona:
docker run -i -t --rm \
-e 'LDAP_FILTER=(\&(objectCategory=person)(objectClass=user)' \
-e 'LDAP_PASS=Secret!Password' \
user-prefix/container-name
Respuesta2
Si no puede utilizar comillas simples para toda la cadena por algún motivo (por ejemplo, expansión de variables), esta es probablemente la mejor solución:En bash, ¿cómo puedo escapar de un signo de exclamación?
En resumen: utilice "'!'"
alrededor del signo de exclamación:
echo "hello there"'!'" and goodbye"