Unix / Linux - Usando Variáveis Shell
Neste capítulo, aprenderemos como usar variáveis Shell no Unix. Uma variável é uma cadeia de caracteres à qual atribuímos um valor. O valor atribuído pode ser um número, texto, nome do arquivo, dispositivo ou qualquer outro tipo de dados.
Uma variável nada mais é do que um ponteiro para os dados reais. O shell permite criar, atribuir e excluir variáveis.
Nomes de Variáveis
O nome de uma variável pode conter apenas letras (a a z ou A a Z), números (0 a 9) ou o caractere de sublinhado (_).
Por convenção, as variáveis do shell Unix terão seus nomes em MAIÚSCULAS.
Os exemplos a seguir são nomes de variáveis válidos -
_ALI
TOKEN_A
VAR_1
VAR_2
A seguir estão os exemplos de nomes de variáveis inválidos -
2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!
O motivo pelo qual você não pode usar outros caracteres, como !, *, ou - é que esses caracteres têm um significado especial para o shell.
Definindo Variáveis
As variáveis são definidas da seguinte forma -
variable_name=variable_value
Por exemplo -
NAME="Zara Ali"
O exemplo acima define a variável NAME e atribui o valor "Zara Ali" a ela. Variáveis deste tipo são chamadasscalar variables. Uma variável escalar pode conter apenas um valor de cada vez.
O Shell permite que você armazene qualquer valor que desejar em uma variável. Por exemplo -
VAR1="Zara Ali"
VAR2=100
Valores de acesso
Para acessar o valor armazenado em uma variável, prefixe seu nome com o cifrão ($) -
Por exemplo, o script a seguir acessará o valor da variável definida NAME e o imprimirá em STDOUT -
#!/bin/sh
NAME="Zara Ali"
echo $NAME
O script acima produzirá o seguinte valor -
Zara Ali
Variáveis somente leitura
O shell fornece uma maneira de marcar variáveis como somente leitura usando o comando somente leitura. Depois que uma variável é marcada como somente leitura, seu valor não pode ser alterado.
Por exemplo, o script a seguir gera um erro ao tentar alterar o valor de NAME -
#!/bin/sh
NAME="Zara Ali"
readonly NAME
NAME="Qadiri"
O script acima irá gerar o seguinte resultado -
/bin/sh: NAME: This variable is read only.
Variáveis não configuradas
A remoção ou exclusão de uma variável direciona o shell para remover a variável da lista de variáveis que ele rastreia. Depois de remover a definição de uma variável, você não pode acessar o valor armazenado na variável.
A seguir está a sintaxe para desconfigurar uma variável definida usando o unset comando -
unset variable_name
O comando acima desfaz o valor de uma variável definida. Aqui está um exemplo simples que demonstra como o comando funciona -
#!/bin/sh
NAME="Zara Ali"
unset NAME
echo $NAME
O exemplo acima não imprime nada. Você não pode usar o comando unset paraunset variáveis que são marcadas readonly.
Tipos de Variáveis
Quando um shell está em execução, três tipos principais de variáveis estão presentes -
Local Variables- Uma variável local é uma variável que está presente na instância atual do shell. Não está disponível para programas iniciados pelo shell. Eles são definidos no prompt de comando.
Environment Variables- Uma variável de ambiente está disponível para qualquer processo filho do shell. Alguns programas precisam de variáveis de ambiente para funcionar corretamente. Normalmente, um script de shell define apenas as variáveis de ambiente necessárias para os programas que ele executa.
Shell Variables- Uma variável de shell é uma variável especial definida pelo shell e exigida por ele para funcionar corretamente. Algumas dessas variáveis são variáveis de ambiente, enquanto outras são variáveis locais.