Não é possível fazer o cd para a variável de caminho recém-adicionada [duplicada]

3

Adicionei a seguinte linha a /etc/environment :

ML="$HOME/ml"

Depois de fazer login novamente para o script entrar em vigor, execute printenv ML imprime $HOME/ml e executa cd $ML impressões

bash: cd: $HOME/ml: No such file or directory

Qual é a maneira correta de definir uma nova variável de caminho do sistema e ser capaz de usá-la como um endereço de diretório de atalho?

    
por Tran Triet 19.09.2017 / 15:31

1 resposta

5

/etc/environment (ou o usuário específico - $HOME/.pam_environment ) é definido pelo módulo pam_env PAM e, por sua vez, usado por login , ssh e programas de inicialização de sessão semelhantes para configurar o ambiente de inicialização para o usuário está logado.

/etc/environment não entende nenhuma variável existente (ou ambiente), então $HOME no seu caso está sendo tratado literalmente, nenhuma expansão está sendo feita, daí o erro.

Você precisa usar caminhos absolutos aqui, por exemplo:

ML="/home/foobar/ml"
    
por heemayl 19.09.2017 / 15:41