Usuário anônimo
Mais
Como posso definir uma variável de ambiente do usuário? (permanentemente, não sessão)
Isto está a irritar-me. Vi várias sugestões (todas usando arquivos e sintaxe diferentes) e nenhuma delas funcionou.
Como posso definir uma variável de ambiente para um usuário específico? Eu estou no debian squeeze. Qual é a sintaxe exata que devo colocar no arquivo para fazer ABC = "123"?
145
3
Você tem que colocar a declaração nos arquivos de inicialização da sua concha:
Se você estiver usando bash, ash, ksh ou alguma outra concha ao estilo de Bourne, você pode adicionar
no seu arquivo
.profile
(${HOME}/.profile
). Esta é a situação padrão na maioria das instalações Unix, e em particular no Debian.Se sua shell de login é bash, você pode utilizar
.bash_profile
(${HOME}/.bash_profile
) ou.bash_login
em seu lugar.Note: Se algum desses arquivos existe e sua shell de login é bash,
.profile
não é lido quando você faz login over ssh ou em um console de texto, mas ainda pode ser lido ao invés de.bash_profile
se você fizer login a partir da GUI. Além disso, se não houver.bash_profile
, então utilize.bashrc
.Se você'tiver definido zsh como sua shell de login, utilize
~/.zprofile
em vez de~/.profile
.Se você estiver usando o tcsh, adicione
no arquivo
.login
(${HOME}/.login
)Este é um procedimento geral que você pode usar para praticamente qualquer concha. Em qualquer caso, você tem que saber com qual shell o usuário normalmente faria o login:
Então você tem que descobrir quais os arquivos de pontos que esta concha normalmente leria:
Um atalho que pode funcionar é listar aqueles arquivos de pontos que contêm o nome da concha:
Se você quiser verificar se um dos arquivos é realmente lido durante o login, você pode simplesmente imprimir o nome do arquivo em cada um deles, por exemplo:
Ao fazer login, você deve então ver quais arquivos estão sendo lidos, e você pode decidir qual deles modificar. Cuidado para não tentar utilizar
echo "$0"
ou similar, porque o valor de$0
depende de como a shell processa os arquivos de pontos, e pode ser enganoso.Quando se trata de declarar a variável " permanentemente" note que isto só se estende à sessão. Não há como acessar o valor de uma variável sem uma sessão, portanto não tem significado fora de uma. Se você quer dizer "read-only", isso é dependente da shell, e em **Bash*** você pode usar:
se já tem um valor, ou
para a atribuir ao mesmo tempo. Nem todos os shells têm este recurso.
Para declarar uma variável na maioria das shells, você deve utilizar um nome de variável (
[A-Za-z_][A-Za-z0-9_]*
), seguido por um sinal de igual (e não há espaços em torno do sinal de igual), depois um valor (de preferência citado a menos que o valor seja um simples[A-Za-z0-9_]+
). Por exemplo:Usar exportação.
Para verificar se está...##39;s definido, use
e/ou
Para adicioná-lo permanentemente, adicione isto ao seu arquivo
~/.bashrc
.