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.