[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Variáveis em bash

Understand the concept of a variable and how to do every process to create your own.

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.

Sources

 pt-br:howtos:misc:variables_in_bash ()
Esta tradução é mais antiga que a página original e pode estar desatualizada. Veja o que foi mudado.