Existem realmente dois tipos de variáveis:
- Variáveis de ambiente
- Variáveis da shell
Para tornar as coisas mais complicadas, ambas têm a mesma aparência, e uma variável shell pode ser convertida em uma variável de ambiente com o comando export
.
O comando env
mostrará o conjunto atual de variáveis de ambiente.
$ myvar=100
$ env | grep myvar
$ export myvar
$ env | grep myvar
myvar=100
As variáveis também podem ser exportadas temporariamente para a duração de um comando.
$ env | grep anothervar
$ anothervar=100 env | grep anothervar
anothervar=100
$ env | grep anothervar
$
Quando o shell é inicializado, ele herda várias variáveis de ambiente (que podem ser zero).
Os scripts de inicialização (por exemplo, .bash_profile
, .bashrc
, arquivos no diretório /etc
) também podem definir e exportar variáveis.
Finalmente, o próprio shell pode definir um número padrão para variáveis de ambiente se o ambiente estiver vazio. por exemplo,
$ PATH=foo /bin/bash -c 'echo $PATH'
foo
$ PATH= /bin/bash -c 'echo $PATH'
$ unset PATH
$ /bin/bash -c 'echo $PATH'
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.