Mais sobre variáveis de ambiente.
[cascardo/admin.git] / environ / shell
1 Alterando variáveis de ambiente no bash
2
3 O shell do projeto GNU, bash, é um dos mais populares entre sistemas
4 utilizando GNU e Linux, como Debian, Fedora, Mandriva, SuSE, Gentoo,
5 entre outros. Veremos como utilizar as variáveis de ambiente nesse
6 shell, portanto.
7
8 Para definir uma variável no bash, basta executar uma linha como:
9 NOME=VALOR
10
11 O nome da variável deve conter apenas caracteres alfa-numéricos e
12 sublinhado, começando por caracteres alfabéticos ou sublinhado. O
13 caractere '=' não pode ser precedido ou seguido de espaços. O valor da
14 variável deve ser escapado com aspas duplas, aspas simples ou o
15 caractere '\' caso contenha caracteres como espaço ou outros caracteres
16 especiais para o shell.
17
18 Alguns exemplos:
19
20 HOME=/home/user
21 MYNAME="User Name"
22
23 O shell expande o caractere '$' seguido do nome de uma variável por seu
24 valor. Assim, o valor de variáveis podem ser usados em comandos do
25 shell, permitindo que valores usados com muita frequência possam ser
26 abreviados ou facilmente substituídos.
27
28 Exemplo
29
30 Exibe o valor da variável HOME na saída padrão:
31 echo $HOME
32
33 Lista os arquivos no diretório, que é o valor da variável HOME:
34 ls $HOME
35
36 Quem faz a expensão do valor dessa variável é o shell. Portanto,
37 comandos externos e internos recebem como parâmetro o valor da variável
38 e não o nome da variável.
39
40 Para que outros programas façam uso dessas variáveis de ambiente, é
41 necessário que o shell as exporte antes de executar tais programas. Para
42 fazê-lo, usamos o comando export.
43
44 export HOME
45 export MYNAME
46
47 Note que é o nome da variável que é usado para exportá-la, não seu
48 valor. Feito isso, podemos fazer o teste executando um sub-shell, isto
49 é, um shell dentro de outro shell.
50
51 OTHERNAME="User Name"
52 bash
53 echo $MYNAME
54 echo $OTHERNAME
55 exit
56
57 Veja que a variável MYNAME, que foi exportada, teve seu valor
58 substituído no sub-shell. Já a variável OTHERNAME, não foi substituída
59 pelo sub-shell, pois este não conhecia seu valor, já que a variável não
60 foi exportada pelo shell.
61
62 O bash ainda possui os comandos internos set e unset, que podem ser
63 utilizados para visualizar a lista de variáveis de ambiente e remover
64 variáveis de ambiente.
65
66 set   Lista variáveis de ambiente e funções definidas.
67 unset   Remove a variável de ambiente.
68
69 Exemplos
70
71 Remover a variável de ambiente MYNAME:
72 echo $MYNAME
73 unset MYNAME
74 echo $MYNAME
75
76 Listar as variáveis de ambiente e funções:
77 set
78
79 O comando set lista apenas as variáveis de ambiente, se o bash estiver
80 operando em modo POSIX. Para isso, basta definir a variável
81 POSIXLY_CORRECT.
82
83 POSIXLY_CORRECT=1
84 set
85
86 Outro comando, env, pode ser usado pra manipular o ambiente. Este
87 comando externo pode executar um outro comando com um novo ambiente
88 definido ou simplesmente listar o ambiente atual.
89
90 Exemplos
91
92 Listar variáveis de ambiente:
93 env
94
95 Executar o comando ls com a variável POSIXLY_CORRECT em seu ambiente:
96 env POSIXLY_CORRECT=1 ls / -a