/ caminho de exportação do ambiente / etc

3

Eu tenho o seguinte / etc / environment:

export PATH=$PATH

Sempre que faço login, recebo os seguintes erros:

-bash: id: command not found
-bash: tty: command not found

O que estou fazendo de errado?

(meu / etc / ambiente real é mais complicado e configura o java no caminho, mas, por simplicidade, não consigo nem mesmo fazer o que está acima funcionar)

Estou usando o Centos6

    
por DD. 16.05.2012 / 13:38

3 respostas

2

Eu acho que a abordagem mais limpa é usar uma entrada em /etc/profile.d over /etc/environment , mas você pode fazer eco da saída de $ PATH? Esse pode ser o problema real. Ou, pelo menos, mostre os detalhes do arquivo de ambiente complicado.

    
por 16.05.2012 / 13:45
7

Você entendeu errado a sintaxe /etc/environment . Não é interpretado como uma série de comandos shell, portanto, não é um arquivo .sh . O /etc/environment é carregado quando o shell ainda não existe e quando ainda não foi decidido se haveria bash ou csh ou outro. Pode até haver uma personalização para executar algum programa específico em vez de um shell. Portanto, /etc/environment tem uma sintaxe realmente básica.

Como visto nesta resposta do Unix / Linux StackExchange :

you can only put static environment variable definitions, of the form VARIABLE=VALUE or VARIABLE="VALUE", with one definition per line. You can't have arbitrary shell commands, you can't refer to the value of another variable by writing FOO=hello+$BAR

No seu caso, você não deveria ter usado o comando export shell.

    
por 21.01.2015 / 10:45
1

Isso soa como um problema de citação (ou seja, o valor atual de $PATH contém caracteres IFS e o bash está tentando executar alguma parte dele). Os valores das variáveis quase sempre devem ser citados, de modo que a linha deve se parecer com:

export PATH="$PATH"

No entanto, como você não está alterando o valor de $PATH , na verdade, você não precisa da atribuição e o seguinte é suficiente:

export PATH
    
por 16.05.2012 / 22:23

Tags