Guia do Linux/Iniciante+Intermediário/Personalização do sistema/Variáveis de Ambientes
Variáveis de Ambientes
editarÉ um método simples e prático que permite a especificação de opções de configuração de programas sem precisar mexer com arquivos no disco ou opções. Algumas variáveis do GNU/Linux
afetam o comportamento de todo o Sistema Operacional, como o idioma utilizado e o path (veja [ch-run.html#s-run-path path, Seção 7.2]) . Variáveis de ambientes são nomes que contém algum valor e tem a forma Nome=Valor. As variáveis de ambiente são individuais para cada usuário do sistema ou consoles virtuais e permanecem residentes na memória RAM até que o usuário saia do sistema (logo-off) ou até que o sistema seja desligado.
As variáveis de ambiente são visualizadas/criadas através do comando set
ou echo $NOME (apenas visualiza) e exportadas para o sistemas com o comando export NOME=VALOR.
Nos sistemas Debian
, o local usado para especificar variáveis de ambiente é o /etc/environment
(veja [#s-pers-environment Arquivo /etc/environment
, Seção 21.8]). Todas as variáveis especificadas neste arquivos serão inicializadas e automaticamente exportadas na inicialização do sistema.
Exemplo: Para criar uma variável chamada TESTE
que contenha o valor 123456 digite: export TESTE=123456. Agora para ver o resultado digite: echo $TESTE ou set|grep TESTE. Note que o $ que antecede o nome TESTE
serve para identificar que se trata de uma variável e não de um arquivo comum.
Variáveis numéricas
editarAs variáveis definidas através de:
variavel = valor
são, por default, strings. Assim, não estranhe se, depois de:
n=1 echo "Teste 1" > teste$n.txt n=$n+1 echo "Teste 2" > teste$n.txt # erro
não acontecer o que seria esperado (a criação do arquivo teste2.txt com a string "Teste 2"). O motivo é que, ao definir n=1, temos que n é uma variável string, então $n+1 simplesmente pega a string e acrescenta +1, formando a string "1+1".
Para fazer aritmética com números inteiros, é preciso definir n como um inteiro, por exemplo, usando-se typeset.
typeset -i n=1 echo "Teste 1" > teste$n.txt n=$n+1 echo "Teste 2" > teste$n.txt # correto