Nome de variáveis de ambiente são case-sensitive.
[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 Nomes de variáveis são "sensíveis à caixa", ou seja, há distinção entre
19 maiúsculas e minúsculas. No entanto, é comum que sejam utilizadas apenas
20 maiúsculas em muitas variáveis, por mera convenção.
21
22 Alguns exemplos:
23
24 HOME=/home/user
25 MYNAME="User Name"
26
27 O shell expande o caractere '$' seguido do nome de uma variável por seu
28 valor. Assim, o valor de variáveis podem ser usados em comandos do
29 shell, permitindo que valores usados com muita frequência possam ser
30 abreviados ou facilmente substituídos.
31
32 Exemplo
33
34 Exibe o valor da variável HOME na saída padrão:
35 echo $HOME
36
37 Lista os arquivos no diretório, que é o valor da variável HOME:
38 ls $HOME
39
40 Quem faz a expensão do valor dessa variável é o shell. Portanto,
41 comandos externos e internos recebem como parâmetro o valor da variável
42 e não o nome da variável.
43
44 Para que outros programas façam uso dessas variáveis de ambiente, é
45 necessário que o shell as exporte antes de executar tais programas. Para
46 fazê-lo, usamos o comando export.
47
48 export HOME
49 export MYNAME
50
51 Note que é o nome da variável que é usado para exportá-la, não seu
52 valor. Feito isso, podemos fazer o teste executando um sub-shell, isto
53 é, um shell dentro de outro shell.
54
55 OTHERNAME="User Name"
56 bash
57 echo $MYNAME
58 echo $OTHERNAME
59 exit
60
61 Veja que a variável MYNAME, que foi exportada, teve seu valor
62 substituído no sub-shell. Já a variável OTHERNAME, não foi substituída
63 pelo sub-shell, pois este não conhecia seu valor, já que a variável não
64 foi exportada pelo shell.
65
66 O bash ainda possui os comandos internos set e unset, que podem ser
67 utilizados para visualizar a lista de variáveis de ambiente e remover
68 variáveis de ambiente.
69
70 set   Lista variáveis de ambiente e funções definidas.
71 unset   Remove a variável de ambiente.
72
73 Exemplos
74
75 Remover a variável de ambiente MYNAME:
76 echo $MYNAME
77 unset MYNAME
78 echo $MYNAME
79
80 Listar as variáveis de ambiente e funções:
81 set
82
83 O comando set lista apenas as variáveis de ambiente, se o bash estiver
84 operando em modo POSIX. Para isso, basta definir a variável
85 POSIXLY_CORRECT.
86
87 POSIXLY_CORRECT=1
88 set
89
90 Outro comando, env, pode ser usado pra manipular o ambiente. Este
91 comando externo pode executar um outro comando com um novo ambiente
92 definido ou simplesmente listar o ambiente atual.
93
94 Exemplos
95
96 Listar variáveis de ambiente:
97 env
98
99 Executar o comando ls com a variável POSIXLY_CORRECT em seu ambiente:
100 env POSIXLY_CORRECT=1 ls / -a