En Ubuntu 12.04, tengo una variable de entorno definida de /etc/environment
esta 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/environment
archivo:
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/environment
archivo.
fuente
Nunca pude encontrar una forma de evitar esta limitación en
/etc/environment
, la documentación parece indicar que/etc/environment
es 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.d
como 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.