Come sfuggire “!” e “&” nelle variabili di ambiente della finestra mobile


16

Ho un contenitore docker che voglio eseguire e consegnarlo con alcune password. Uno con un punto esclamativo !e l'altro con una e commerciale &. Quindi voglio eseguire questo:

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

Questo non funziona &viene sostituito {LDAP_FILTER}e !viene troncato. Sono abbastanza sicuro di dover sfuggire a questi. Ma \!e \&non ha funzionato.


2
Hai provato con virgolette singole? Dato che non hai variabili da interpolare, puoi scappare con virgolette singole qui.
Rich Homolka,

1
Un colpo cieco: se il -e parametro viene eseguito da un'altra istanza della shell, potresti dover scappare due volte, quindi prova \\\&e \\\!.
mpy,

@mpy il trucco \\\ ha fatto per me, questo è il migliore!
Simon Schnell,

Risposte:


17

Ho trovato una soluzione:

  • Utilizzo di virgolette singole anziché doppie
  • Fuga la e commerciale &a\&
  • Non sfuggire al punto esclamativo !

quindi funziona:

docker run -i -t --rm \
-e 'LDAP_FILTER=(\&(objectCategory=person)(objectClass=user)' \
-e 'LDAP_PASS=Secret!Password' \
user-prefix/container-name
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.