Introdução
Neste laboratório, você aprenderá sobre variáveis em scripts de shell Linux, que são essenciais para armazenar e manipular dados em seus scripts. As variáveis permitem que você armazene informações temporariamente durante a execução do script e reutilize essas informações em todo o seu código.
Compreender como declarar e usar variáveis é uma habilidade fundamental para escrever scripts de shell Linux. Este conhecimento o ajudará a automatizar tarefas, gerenciar configurações e criar scripts mais dinâmicos para várias aplicações.
Ao final deste laboratório, você entenderá como criar variáveis simples, variáveis inteiras e arrays em scripts bash, que são os blocos de construção para técnicas de scripting de shell mais avançadas.
Declaração Básica de Variáveis
Nesta etapa, você aprenderá como declarar e usar uma variável básica em um script bash. Variáveis em scripts de shell Linux permitem que você armazene dados temporariamente e os referencie mais tarde em seu script.
Primeiro, vamos criar um diretório para nosso projeto e navegar até ele:
mkdir -p ~/project
cd ~/project
Agora, crie um script chamado variables.sh usando o editor de texto nano:
nano ~/project/variables.sh
Dentro do editor, digite o seguinte conteúdo:
#!/bin/bash
## Declaring a basic variable
BALLOON_COLOR="red"
## Displaying the variable value
echo "The balloon color is: $BALLOON_COLOR"
Neste script, declaramos uma variável chamada BALLOON_COLOR e atribuímos a ela o valor "red". O comando echo então exibe o valor desta variável.
Para salvar o arquivo no nano, pressione Ctrl+O, depois pressione Enter para confirmar. Para sair do nano, pressione Ctrl+X.
Agora, torne o script executável:
chmod +x ~/project/variables.sh
Este comando dá ao arquivo permissão de execução, permitindo que você o execute como um programa.
Finalmente, execute seu script:
./variables.sh
Você deve ver a seguinte saída:
The balloon color is: red
Isso mostra que sua variável foi declarada com sucesso e seu valor pode ser acessado usando o símbolo $ antes do nome da variável.
Declarando Variáveis Inteiras
Nesta etapa, você aprenderá como declarar e usar variáveis inteiras em scripts bash. A flag -i informa ao bash que a variável deve ser tratada como um inteiro, o que pode ser útil para operações numéricas.
Abra o script variables.sh novamente para editá-lo:
nano ~/project/variables.sh
Modifique o script para incluir uma variável inteira:
#!/bin/bash
## Declaring a basic string variable
BALLOON_COLOR="red"
## Declaring an integer variable
declare -i BALLOON_SIZE=10
## Displaying both variables
echo "The balloon color is: $BALLOON_COLOR"
echo "The balloon size is: $BALLOON_SIZE inches"
## Performing arithmetic with the integer variable
declare -i DOUBLE_SIZE=BALLOON_SIZE*2
echo "Double the size would be: $DOUBLE_SIZE inches"
Neste script atualizado:
- Mantivemos nossa variável de string original
BALLOON_COLOR - Adicionamos uma nova variável inteira
BALLOON_SIZEusando a sintaxedeclare -i - Demonstramos como realizar operações aritméticas com variáveis inteiras
Salve o arquivo com Ctrl+O e Enter, depois saia do nano com Ctrl+X.
Agora execute o script novamente:
./variables.sh
Você deve ver a seguinte saída:
The balloon color is: red
The balloon size is: 10 inches
Double the size would be: 20 inches
A declaração -i permite que o bash reconheça que a variável deve ser tratada como um inteiro, tornando as operações aritméticas possíveis. Isso é particularmente útil para contadores, cálculos e processamento numérico em seus scripts.
Trabalhando com Variáveis de Array
Nesta etapa, você aprenderá como declarar e usar variáveis de array. Arrays permitem que você armazene múltiplos valores sob um único nome de variável, o que é útil ao lidar com coleções de dados relacionados.
Vamos editar nosso script novamente:
nano ~/project/variables.sh
Atualize o script para incluir uma variável de array:
#!/bin/bash
## Declaring a basic string variable
BALLOON_COLOR="red"
## Declaring an integer variable
declare -i BALLOON_SIZE=10
## Declaring an array variable
declare -a BALLOON_COLORS=("red" "green" "blue" "purple" "yellow")
## Displaying individual variables
echo "The balloon color is: $BALLOON_COLOR"
echo "The balloon size is: $BALLOON_SIZE inches"
## Displaying all array elements
echo "Available balloon colors are: ${BALLOON_COLORS[*]}"
## Displaying specific array elements
echo "The first color is: ${BALLOON_COLORS[0]}"
echo "The third color is: ${BALLOON_COLORS[2]}"
## Count of array elements
echo "Number of available colors: ${#BALLOON_COLORS[@]}"
Neste script atualizado:
- Mantivemos nossas variáveis existentes
- Adicionamos uma variável de array
BALLOON_COLORSusando a sintaxedeclare -a - Mostramos diferentes maneiras de acessar elementos do array:
${BALLOON_COLORS[*]}exibe todos os elementos${BALLOON_COLORS[0]}acessa o primeiro elemento (arrays em bash são indexados a partir de zero)${#BALLOON_COLORS[@]}fornece o número de elementos no array
Salve o arquivo com Ctrl+O e Enter, depois saia do nano com Ctrl+X.
Agora execute o script novamente:
./variables.sh
Você deve ver a seguinte saída:
The balloon color is: red
The balloon size is: 10 inches
Available balloon colors are: red green blue purple yellow
The first color is: red
The third color is: blue
Number of available colors: 5
Arrays são poderosos quando você precisa gerenciar coleções de dados relacionados. Eles permitem que você organize múltiplos valores e os acesse individualmente ou como um grupo. Isso é especialmente útil para gerenciar listas de itens, como nomes de arquivos, informações de usuário ou opções de configuração.
Manipulação e Expansão de Variáveis
Nesta etapa, você aprenderá como manipular e expandir variáveis de diferentes maneiras. Essas técnicas permitem que você modifique os valores das variáveis sem criar novas variáveis, o que é útil para processamento de texto e transformação de dados.
Vamos editar nosso script novamente:
nano ~/project/variables.sh
Atualize o script para demonstrar a manipulação de variáveis:
#!/bin/bash
## Declaring basic variables
NAME="linux"
MESSAGE="Hello, world!"
FILE_PATH="/home/user/documents/report.txt"
echo "Original values:"
echo "NAME = $NAME"
echo "MESSAGE = $MESSAGE"
echo "FILE_PATH = $FILE_PATH"
echo -e "\nVariable manipulation examples:"
## Convert to uppercase
echo "NAME in uppercase: ${NAME^^}"
## Convert to lowercase
UPPER_NAME="LINUX"
echo "UPPER_NAME in lowercase: ${UPPER_NAME,,}"
## Get string length
echo "Length of MESSAGE: ${#MESSAGE}"
## Extract substring (starting at position 7, 5 characters)
echo "Substring of MESSAGE: ${MESSAGE:7:5}"
## Replace part of string
echo "Replace 'world' with 'Linux': ${MESSAGE/world/Linux}"
## Extract filename from path
echo "Filename from path: ${FILE_PATH##*/}"
## Extract directory from path
echo "Directory from path: ${FILE_PATH%/*}"
## Default value if variable is unset
UNSET_VAR=""
echo "Default value example: ${UNSET_VAR:-default value}"
Este script demonstra vários métodos para manipular variáveis:
${NAME^^}- Converter para maiúsculas${UPPER_NAME,,}- Converter para minúsculas${#MESSAGE}- Obter o comprimento da string${MESSAGE:7:5}- Extrair substring (posição e comprimento)${MESSAGE/world/Linux}- Substituir parte da string${FILE_PATH##*/}- Remover a correspondência mais longa do início (extrair nome do arquivo)${FILE_PATH%/*}- Remover a correspondência mais curta do final (extrair diretório)${UNSET_VAR:-default value}- Usar o padrão se a variável não estiver definida
Salve o arquivo com Ctrl+O e Enter, depois saia do nano com Ctrl+X.
Agora execute o script:
./variables.sh
Você deve ver uma saída semelhante a:
Original values:
NAME = linux
MESSAGE = Hello, world!
FILE_PATH = /home/user/documents/report.txt
Variable manipulation examples:
NAME in uppercase: LINUX
UPPER_NAME in lowercase: linux
Length of MESSAGE: 13
Substring of MESSAGE: world
Replace 'world' with 'Linux': Hello, Linux!
Filename from path: report.txt
Directory from path: /home/user/documents
Default value example: default value
Essas técnicas de manipulação de variáveis são extremamente úteis para processar dados de texto, extrair informações de strings e lidar com valores padrão em seus scripts.
Variáveis de Ambiente e Escopo de Variáveis
Nesta etapa final, você aprenderá sobre variáveis de ambiente, escopo de variáveis e como exportar variáveis para torná-las disponíveis para outros processos.
Crie um novo script chamado environment.sh:
nano ~/project/environment.sh
Adicione o seguinte conteúdo:
#!/bin/bash
## Displaying some common environment variables
echo "USER: $USER"
echo "HOME: $HOME"
echo "PATH: $PATH"
echo "PWD: $PWD"
echo "SHELL: $SHELL"
## Creating a local variable
LOCAL_VAR="This is a local variable"
echo "LOCAL_VAR: $LOCAL_VAR"
## Exporting a variable to make it available to child processes
export EXPORTED_VAR="This variable is exported"
echo "EXPORTED_VAR: $EXPORTED_VAR"
## Demonstrate how variables work in subshells
echo -e "\nVariable behavior in subshell:"
(
echo "Inside subshell:"
echo " LOCAL_VAR: $LOCAL_VAR"
echo " EXPORTED_VAR: $EXPORTED_VAR"
echo " Creating subshell-only variable"
SUBSHELL_VAR="This variable only exists in the subshell"
echo " SUBSHELL_VAR: $SUBSHELL_VAR"
)
echo -e "\nAfter subshell:"
echo "LOCAL_VAR: $LOCAL_VAR"
echo "EXPORTED_VAR: $EXPORTED_VAR"
echo "SUBSHELL_VAR: $SUBSHELL_VAR" ## This will be empty
## Creating a script to test export behavior
echo -e "\nCreating child script to test variable export..."
cat > ~/project/child_script.sh << 'EOF'
#!/bin/bash
echo "In child script:"
echo "EXPORTED_VAR: $EXPORTED_VAR"
echo "LOCAL_VAR: $LOCAL_VAR"
EOF
chmod +x ~/project/child_script.sh
## Run the child script
echo -e "\nRunning child script:"
./child_script.sh
Este script demonstra:
- Variáveis de ambiente comuns (
USER,HOME,PATH, etc.) - A diferença entre variáveis locais e exportadas
- Comportamento de variáveis em subshells (os parênteses criam um subshell)
- Como as variáveis exportadas são herdadas por processos filhos
Salve o arquivo com Ctrl+O e Enter, depois saia do nano com Ctrl+X.
Torne o script executável:
chmod +x ~/project/environment.sh
Agora execute o script:
./environment.sh
A saída mostrará como as variáveis se comportam em diferentes contextos:
- Variáveis de ambiente são predefinidas pelo sistema
- Variáveis locais existem apenas no script atual
- Variáveis exportadas são passadas para processos filhos
- Variáveis criadas em subshells não estão disponíveis no shell pai
Compreender o escopo de variáveis é crucial ao escrever scripts complexos que geram processos filhos ou incluem outros scripts. Isso ajuda você a gerenciar o fluxo de dados entre diferentes partes do seu sistema.
Resumo
Neste laboratório, você aprendeu os fundamentos da declaração e manipulação de variáveis em shell scripting Linux. Você explorou:
- Declaração e uso básico de variáveis
- Variáveis inteiras e operações aritméticas
- Variáveis de array para armazenar coleções de dados
- Técnicas de manipulação de variáveis para processamento de texto
- Variáveis de ambiente e escopo de variáveis
Essas habilidades formam a base do shell scripting e são essenciais para automatizar tarefas em ambientes Linux. As variáveis permitem que você crie scripts mais dinâmicos e flexíveis, armazenando e processando dados durante a execução.
Agora você pode usar essas técnicas para:
- Armazenar configurações em seus scripts
- Processar entrada do usuário e conteúdo de arquivos
- Manipular dados de texto e caminhos de arquivos
- Compartilhar dados entre diferentes scripts e processos
À medida que você continua sua jornada em shell scripting Linux, descobrirá que dominar o uso de variáveis abre muitas possibilidades para criar ferramentas de automação poderosas e eficientes.



