Você pode usar variáveis ao editar o / etc / environment no Ubuntu 10.04?

5

Estou tentando introduzir uma variável e adicioná-la ao caminho global no Ubuntu 10.04. De acordo com os documentos oficiais , o / etc / environment é o lugar certo. Aqui está o meu exemplo:

GRADLE_HOME=/etc/gradle-0.9-preview-3
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$GRADLE_HOME/bin"

A variável GRADLE_HOME é adicionada ao ambiente, mas não está interpretando a variável $ GRADLE_HOME durante a atribuição PATH. Hard-coding funciona bem. Não é grande coisa, mas eu gostaria de saber se a substituição de variáveis é suportada, ou se há uma maneira melhor de fazer isso? Obrigado!

    
por Dan 29.07.2010 / 18:39

2 respostas

4

Esta explicação de um post relacionado parece fornecer a resposta:

Because /etc/environment is not a shell script. It is the shell that does expansion of environment variables. The PAM module pam_env is what reads /etc/environment - and it treats it as a simple list of KEY=VAL pairs and sets up the environment accordingly. It has no language for doing variable expansion.

    
por 01.09.2010 / 18:17
1

Leia a pam_env.conf (5) manpage.

Acredito que você precisa adicionar chaves ao redor do nome da variável no lado direito:

GRADLE_HOME=/etc/gradle-0.9-preview-3
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${GRADLE_HOME}/bin"

(Possibly non-existent) environment variables may be used in values using the ${string} syntax and (possibly non-existent) PAM_ITEMs may be used in values using the @{string} syntax. Both the $ and @ characters can be backslash escaped to be used as literal values values can be delimited with "", escaped " not supported. Note that many environment variables that you would like to use may not be set by the time the module is called. For example, HOME is used below several times, but many PAM applications don´t make it available by the time you need it.

    
por 29.07.2010 / 18:54