En Ubuntu 12.04, tengo una variable de entorno definida de /etc/environmentesta manera:
FOO="value_before#value_after"
Cuando ingreso al servidor para verificar el valor, obtengo esto:
$ env | grep FOO
FOO=value_before
Supongo que lo trata #como un comentario y lo elimina, sin embargo, esto funciona:
$ . /etc/environment
$ export FOO
$ env | grep FOO
FOO=value_before#value_after
He intentado escapar #así:
FOO="value_before\#value_after"
Pero eso no funciona, en cambio solo obtengo esto:
FOO=value_before\
¿Alguna idea sobre cómo hacer que el hash sea tratado como parte del valor? Cualquier ayuda sería genial.
Valores que he probado en el /etc/environmentarchivo:
FOO='value_before#value_after'
FOO="value_before#value_after"
FOO='"value_before#value_after"'
FOO="value_before\#value_after"
FOO='value_before\#value_after'
Y otras diversas combinaciones de lo anterior. Muchos de estos funcionarán cuando normalmente los configure en el shell. Pero no parecen funcionar en el /etc/environmentarchivo.
fuente

Nunca pude encontrar una forma de evitar esta limitación en
/etc/environment, la documentación parece indicar que/etc/environmentes un archivo de entorno simple :Lo que podría significar que no le permitirá escapar de los valores usando comillas o el
\carácter, a pesar de que otros lugares en la documentación quizás digan que esto es posible :O tal vez no :
De todos modos, para evitar esta limitación, moví mis variables de entorno global a un archivo
/etc/profile.dcomo se explica en esta respuesta . Todavía considero esta pregunta sin respuesta, pero quería asegurarme de que hubiera una solución alternativa para la posteridad.fuente
No hay forma en / etc / environment para escapar del # (ya que se trata como un comentario) ya que está siendo analizado por el módulo PAM "pam_env" y lo trata como una simple lista de pares KEY = VAL y configura el entorno en consecuencia. No es bash / shell, el analizador no tiene lenguaje para hacer expansión variable o caracteres de escape.
fuente
Comillas simples.
fuente
/etc/environment, he actualizado mi pregunta con algunos ejemplos de valores que he probado.