Variáveis de Shell no Linux

Definição de variável

A ideia é a mesma utilizada em qualquer linguagem de programação, a variável é um elemento que armazena valores que vamos utilizar mais a frente em nosso script.

Esses dados podem ser de tipos diferentes como texto, número, string ou retorno da saída de um comando executado anteriormente.

Tipos de variáveis

Para falar sobre variáveis no ambiente do shell, é preciso antes definir o que é variável local e variável de ambiente (global).

Varíavel local: São variáveis que funcionam apenas na sessão onde ela foi definida.

Para criar uma variável local, veja o exemplo abaixo:

# LOCAL="erick1"

Variável de ambiente (global): São variáveis que funcionam dentro da sessão que a definiu mas também em subshell.

Para criar uma variável de ambiente (global), veja o exemplo abaixo:

# export LOCAL="erick2"

Em resumo, para definir uma variável você não coloca o export na frente, mas na variável de ambiente (global) é preciso por o export na frente.

Regras para criar variável

Observação: O shell possui case sensitive, isso significa que mais de uma variável pode conter o mesmo nome mas precisa ser escrita de maneiras diferentes, por exemplo.

nome=erick
NOME=erick2

Mesmo que isso seja possível, procure manter as boas práticas para evitar dores de cabeça.

Algumas regras precisam ser seguidas durante a definição do nome de uma variável, elas dizem que:

O nome da variável pode ter números (mas não pode iniciar com número), letras, o símbolo _ (underline), não pode ter caracteres especiais e não pode ter espaço antes ou depois do sinal de =.

Modo errado de criar:

# 1nome=erick
# 1_nome=erick
# 1nome_blog=erick
# nome= erick

Modo certo de criar:

# nome=erick
# _nome=erick
# nome_blog=erick
# nome01=erick

Criando uma variável e exibindo o valor dela

Caso queira incluir um espaço após o =, use aspas e coloque o espaço dentro das aspas, exemplo abaixo.

# nome=" erick"
# _nome=" erick"

No exemplo acima foi criada uma variável local mas agora irei mostrar como que você pode criar uma variável de ambiente (global).

# export nome2=erick2
# export _nome2=erick2
# export nome_blog2=erick2
# export nome02=erick2
# export _nome02=" erick2"

Visualizando uma variável

Para conseguir visualizar o valor que está ligado a uma variável, você pode utilizar o comando echo seguido de $nomedavariavel, é importante ter o cifrão na frente para que o shell entenda que é uma variável.

# echo $nome
# echo $_nome
# echo $nome_blog

Excluindo variável local ou global

Esse é um procedimento muito simples, apenas coloque o unset e depois o nome da variável sem o cifrão. O unset serve para ambos os tipos de variáveis.

# unset nomedavariavel

Excluindo uma variável com unset

Exibindo variáveis locais e globais

É possível visualizar todas as variáveis que existem em seu ambiente, para isso utilize o comando set.

# set

Exibindo variáveis de ambiente (global)

Ao contrário do comando set, com o comando env você só conseguirá ver as variáveis de ambiente (global).

# env

Palavras reservadas

As palavras reservadas possuem um significado diferente para o shell pois são usadas para iniciar e terminar comandos compostos do shell, por tanto não é recomendado utilizar elas como nome de uma variável, são elas:

if, then, elif, else, fi, time, for, in, until, while, do, done, case, esac, coproc, select, function, {}, [[]] e !.

Variáveis bash

Como o próprio arquivo do manual bash diz, elas são usadas ou definidas pelo próprio bash. Existe uma lista enorme então deixarei o link do manual para que você possa ler com mais calma.

GNU.org Manual Bash: https://www.gnu.org/software/bash/manual/bash.html#Bash-Variables

Imprimindo variáveis com echo

Quando se utiliza o echo para imprimir o conteúdo de uma variável é preciso tomar cuidado, pois dependendo de como você construa o resultado será diferente.

Aspas simples

Se você utilizar o echo com aspas simples o shell irá interpretar a variável como se fosse um texto qualquer, independente de você ter colocado o cifrão na frente do nome e não vai imprimir o conteúdo dela.

# echo '$nome'
$nome

Aspas duplas

Mas ao usar aspas duplas o shell conseguirá interpretar a variável da maneira correta para fazer a exibição do seu conteúdo.

# echo "$nome"
erick

Aspas simples e aspas duplas no comando echo de uma variável

Ainda existe outro tipo de variáveis especiais do bash mas elas ficarão para outro artigo aqui no blog.

Links de referência

GNU.org Manual Bash: https://www.gnu.org/software/bash/manual/bash.html

Para críticas, dúvidas e sugestões, envie um e-mail para erick{“arrob4”}erickandrade.com.br.

Você pode gostar...