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.
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
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.
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.
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