Variáveis em bash

Autor: Jefferson 'Slackjeff' Rocha
Atualização: 07/07/2018

Entenda o conceito de uma variável e como fazer todo processo para criar a sua própria.

O que é uma variável?

Uma variável como o próprio nome já diz serve para armazenar conteúdos variados em um local/espaço da memória, ao invés de utilizarmos números para fazer a sua chamada, usamos tags/nomes! Assim fica mais fácil fazer a chamada não é? Variáveis em shell podem receber qualquer conteúdo! desde uma simples string/texto, números, status de saída de um comando e retorno da saída.

Quando devemos usar uma variável?

Em qualquer momento! variáveis são legais de se trabalhar, vamos supor como exemplo eu precisasse fazer a chamada de um diretório específico 4 vezes! Seria viável eu ficar digitando sempre esse diretório manual? não seria falho se em um futuro eu resolvesse alterar o diretório em si? E se eu esquecer de alterar algum caminho é falha na certa! Para isto eu uso uma variável para me ajudar!

# Declaração
DIRETORIO="/home/slackjeff/diretorio_local"

# Se diretório não existe, crie.
if [ ! -d "$DIRETORIO" ]; then
   mkdir "$DIRETORIO"
fi
cd "$DIRETORIO"
echo "Estou no diretório '$DIRETORIO'"

Perceba que eu fiz 4 vezes a mesma chamada do diretório! ficou mais viável usar uma variável para isto, assim se precisar eu preciso apenas trocar o conteúdo da variável não precisando mexer em mais nada no código. O mesmo vale para uma mensagem por exemplo onde é repetitiva ou até mesmo comprida! Para este exemplo vou usar o dialog.

# HEREDOCUMENT
texto=$(
cat << FECHA
    OI seja muito bem vindo ao meu site cara!
    Aqui você vai encontrar tudo menos dinheiro.
FECHA
)
# Imprimindo na telinha!
dialog --msgbox "$texto" 0 0

Tipos de variáveis

Em shell não existe variáveis do tipo (char, int, float, double). Aqui é tudo string sem dó sem piedade! nem se preocupe... Só programe.

Declarando uma variável

Em shell não precisamos declarar variáveis! mas se acostume com o jeito da cha- mada :D A ordem para declarar um variável é: . Nota que o nome da varíavel não pode conter nenhum caractere especial como: '@-|&*#$\/' entre outros, não podem também começar com números e ter espaços... Caso o nome da sua variável conter espaços substitua por _ 'underline', sim! underline pode. Não use - 'traço' que não vai rolar, ele é um caractere especial. Após declarar um BOM nome de variável você deve inserir o sinal de '=' e o valor/conteúdo. Vamos para alguns exemplos:

Declarações CORRETAS

tamanho_calca_42="Mentira nem uso 42"
nome="Jefferson"
_Esta_e_minha_rua="Rua pedro dos santos"
NumeroDaMinhaCasa="102"
CPF_E_RG="CPF: xxxxxxxx-xxxxxx.xx RG: y.yyy.yyyy"

Declarações ERRADAS

echo="Jeffa" Funciona mais é reservado.
ls="Deu" Funciona mais é reservado
*Nom&="Paula"
1nome="Fernanda"
rua-do-cabra="Pedrino nicolau"
linguagem=favorita="Shell"
MEU PINTINHO AMARELINHO="Vish isso não vai dar certo"

Tome cuidado, se você é iniciante e fazer a declaração errada não vai worka. O shell vai reclamar, sim! ele é um cara bem zangado com más declarações. Então se liga, sem caracteres especiais, númeração de inicio e espaços.