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é!
Escreva um comentário