Shell Scripting – Usando variáveis nos scripts – 07

Variáveis em Shell Scripting

Em shell scripting, as variáveis são usadas para armazenar e manipular informações ao longo de um script. Elas facilitam o gerenciamento de valores dinâmicos, como números, strings e resultados de comandos, permitindo que o script seja mais flexível e reutilizável.

Neste tutorial veremos desde a definição e uso básico de variáveis até o uso de variáveis especiais e de ambiente. Também vou incluir alguns exercícios para consolidar os conceitos abordados.

O que é uma variável?

Em programação, uma variável é um local de armazenamento na memória RAM do computador para valores que podem ser acessados e modificados ao longo de um script. Porém ao contrário de outras linguagens, no Bash, uma variável não precisa ser declarada com um tipo específico; ela será definida automaticamente com o valor atribuído.

Declarar e utilizar variáveis

Para criar uma variável dentro de um script do shell, usamos a seguinte sintaxe:

NOME_VARIAVEL="valor"

É importante notar que:
1. Não devemos usar espaços em branco entre o nome da variável, o símbolo = e o valor.
2. O uso de aspas ao redor do valor ajuda a garantir que o valor seja interpretado corretamente – no caso, como uma string de texto.

Exemplo simples:

nome="Maria"
echo "Bem-vinda, $nome"

Esse trecho de script cria uma variável chamada nome e armazena o valor “Maria” nela. O comando echo então exibe a mensagem “Bem-vinda, Maria”.

Acessar o valor de uma variável

Para acessar o valor armazenado em uma variável, basta precedê-la com o símbolo $. Assim:

nome="Carlos"
echo "$nome gosta de programar em Bash"

Sewrá exibida a mensagem “Carlos gosta de programar em Bash” na saída do terminal.

Alterar o valor de uma variável

Podemos alterar o valor de uma variável ao longo do script simplesmente atribuindo um novo valor a ela:

numero=10
echo "O valor inicial é $numero"
numero=20
echo "O valor alterado é $numero"

Esse exemplo primeiro define a variável numero com o valor 10, exibe esse valor e, em seguida, altera o valor da variável numero para 20. Note que não usamos aspas ao redor do valor porque nesse caso se tratam de valores numéricos, e não strings de texto (cadeias de caracteres).

Variáveis de ambiente em scripts do shell

As variáveis de ambiente são variáveis globais disponíveis para o sistema e para todos os processos do shell. Elas podem ser visualizadas e definidas com o comando export.

Exemplos de variáveis de ambiente comuns:

  • $HOME: Diretório pessoal do usuário.
  • $PATH: Diretórios onde o sistema busca comandos executáveis.
  • $USER: Nome do usuário atual.

Para definir uma variável de ambiente dentro de um script usamos o comando export:

export EDITOR="nano"

Essa linha define o EDITOR padrão do sistema como nano. Porém, para que essa variável realmente esteja disponível no ambiente, o script deve ser executado precedido da palavra source, como por exemplo:

$ source script_editor.sh

Caso contrário, o shell do script será um subprocesso, e as variáveis definidas dentro dele não afetarão o shell atual.

Variáveis especiais do Bash

O Bash possui também algumas variáveis especiais que fornecem informações úteis dentro de scripts:

  • $0: Nome do script.
  • $1, $2, etc.: Argumentos passados para o script (ao executá-lo no terminal).
  • $#: Número de argumentos.
  • $@: Todos os argumentos como uma lista.
  • $?: Código de saída do último comando executado.

Exemplo:

#!/bin/bash
echo "O script atual é: $0"
echo "Primeiro argumento: $1"
echo "Número total de argumentos: $#"

Observação: no Bash, quando passamos argumentos com espaços, eles são tratados como múltiplos argumentos. Por exemplo, se passarmos Bóson Treinamentos, o Bash irá tratá-los como dois argumentos: “Bóson” e “Treinamentos”, fazendo com que apenas o primeiro valor seja capturado.

Para resolver isso e garantir que o nome completo seja passado corretamente como um único argumento, é necessário colocar o argumento todo entre aspas. Isso garante que o Bash trate tudo entre as aspas como um único argumento, mesmo que haja espaços.

Vejamos alguns exemplos de declaração, atribuição e uso de variáveis em script do shell agora.

Exemplos de uso de variáveis

Crie um script de nome “variaveis.sh” em seu sistema, usando seu editor de textos preferido, e digite os comandos a seguir para testar cada situação. Salve e execute o script após cada exemplo.

Não se esqueça de incluir a linha shebang no início do script (#!/bin/bash) e nem de dar permissão de execução ao script (chmod +x variaveis.sh)

1. Criar uma variável para armazenar a listagem de um diretório:

DIRETORIO="/etc"
echo "Arquivos em $DIRETORIO:"
ls "$DIRETORIO"

2. Usar variáveis em expressões aritméticas:

NUM1=5
NUM2=10
SOMA=$((NUM1 + NUM2))
echo "A soma é: $SOMA"

3. Concatenação de strings:

nome="Jimi"
sobrenome="Hendrix"
saudacao="Olá"
msg="$saudacao, $nome $sobrenome!"
echo "$msg"

4. Ler um argumento no terminal

echo "Aula de Shell Scripting"
echo "Bons estudos, $1!"

Para executar, passamos o valor para o argumento $1 no terminal, como segue:

$ ./variaveis.sh Jimi

A seguir temos mais alguns exercícios para você praticar o emprego de variáveis em scripts do shell. A resolução de cada um está logo após a listagem.

Exercícios práticos

1. Crie um script que defina uma variável de nome empresa com o nome da empresa onde você trabalha e exiba a mensagem “Eu trabalho na empresa <empresa>!”.
2. Declare duas variáveis com valores numéricos quaisquer atribuídos, e calcule o produto delas. Exiba o resultado.
3. Defina uma variável de ambiente (dentro do script) chamada DIA_SEMANA com o valor “Sexta-Feira” e a exporte. Verifique se a variável está disponível usando echo.
4. Crie um script que aceite dois argumentos (ex: ./script.sh arg1 arg2) e exiba “Argumento 1: <arg1> – Argumento 2: <arg2>”.

Resolução dos exercícios

1. Exercício 1:

empresa="Bóson Treinamentos"
echo "Eu trabalho na empresa $empresa!"

2. Exercício 2:

num1=8
num2=15
mult=$((num1 * num2))
echo "O produto é: $mult"

3. Exercício 3:

export DIA_SEMANA="Sexta-Feira"
echo "$DIA_SEMANA"

Podemos acessar o conteúdo dessa variável exportada usando o comando echo diretamente no terminal após a execução do script (executado com source):

$ echo "$DIA_SEMANA"

4. Exercício 4:

echo "Argumento 1: $1 - Argumento 2: $2"

Para testar:

$ ./script.sh Laranja Morango

É isso aí! Vimos neste tutorial como utilizar variáveis em scripts do shell Bash. Nas próximas lições vamos explorar estruturas de programação bastante úteis, como condicionais, loops variados e arrays. Até!

 

Sobre Fábio dos Reis (1226 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*