No Ubuntu 12.04, eu tenho uma variável de ambiente definida /etc/environment
assim:
FOO="value_before#value_after"
Quando ssh no servidor para verificar o valor, recebo o seguinte:
$ env | grep FOO
FOO=value_before
Eu estou supondo que está tratando o #
como um comentário e retirando-o, no entanto, isso funciona:
$ . /etc/environment
$ export FOO
$ env | grep FOO
FOO=value_before#value_after
Eu tentei escapar #
assim:
FOO="value_before\#value_after"
Mas isso não funciona, em vez disso, apenas entendi:
FOO=value_before\
Alguma idéia de como fazer com que o hash seja tratado como parte do valor? Qualquer ajuda seria ótimo.
Valores que tentei no /etc/environment
arquivo:
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'
E outras várias combinações dos itens acima. Muitos deles funcionarão quando você apenas os define normalmente no shell. Mas eles não parecem funcionar no /etc/environment
arquivo.
fonte
Eu nunca consegui encontrar uma maneira de contornar essa limitação
/etc/environment
, a documentação parece indicar que/etc/environment
é um arquivo de ambiente simples :O que pode significar que não permitirá que você escape de valores usando aspas ou o
\
caractere, apesar de outros lugares na documentação estarem dizendo que isso é possível :Ou talvez não :
De qualquer forma, para contornar essa limitação, movi minhas variáveis de ambiente global para um arquivo,
/etc/profile.d
conforme discutido nesta resposta . Ainda considero esta pergunta sem resposta, mas queria garantir que houvesse uma solução alternativa vinculada para a posteridade.fonte
Não há como escapar do # (como tratado como um comentário) no / etc / environment, pois ele está sendo analisado pelo módulo PAM "pam_env" e o trata como uma lista simples de pares KEY = VAL e configura o ambiente em conformidade. Não é bash / shell, o analisador não possui linguagem para executar expansão variável ou caracteres que escapam.
fonte
Aspas simples.
fonte
/etc/environment
. Atualizei minha pergunta com alguns exemplos de valores que tentei.