Conteúdo
O Bash (Bourne-Again SHell) é a interface de linha de comando mais usada em sistemas Linux e Unix. Dominar scripts Bash é essencial para automatizar tarefas, gerenciar sistemas e ampliar sua produtividade. Neste artigo, você encontrará 5 exemplos práticos de scripts Bash, desde o básico até técnicas intermediárias, para acelerar seu aprendizado em programação Linux.
Requisitos mínimos para o tutorial
Antes de começar, garanta que:
- Você tenha acesso a um terminal Linux/Unix (ou WSL no Windows).
- Conheça comandos básicos do terminal, como
cd
,ls
, emkdir
. - Um editor de texto (ex:
nano
,vim
, ouVSCode
).
Hello World e Variáveis
Objetivo: Imprimir uma mensagem e usar variáveis.
#!/bin/bash
# Hello World básico
echo "Olá, Mundo!"
# Declarar variáveis
nome="Carlos"
idade=30
# Usar variáveis
echo "Meu nome é $nome e tenho $idade anos."
Explicação:
#!/bin/bash
define o interpretador do script.echo
imprime texto no terminal.- Variáveis são declaradas sem
$
, mas usadas com$
.
Condicionais (if/else)
Objetivo: Tomar decisões com base em condições.
#!/bin/bash
# Verifica se um número é positivo, negativo ou zero
read -p "Digite um número: " numero
if [ $numero -gt 0 ]; then
echo "$numero é positivo."
elif [ $numero -lt 0 ]; then
echo "$numero é negativo."
else
echo "O número é zero."
fi
Explicação:
read -p
captura entrada do usuário.if [ condição ]
usa colchetes para testar condições.- Operadores:
-gt
(maior que),-lt
(menor que),-eq
(igual a).
Loops (for e while)
Objetivo: Iterar sobre listas e executar ações repetidas.
Loop For
#!/bin/bash
# Lista frutas e imprime cada uma
frutas=("Maçã" "Banana" "Laranja" "Uva")
for fruta in "${frutas[@]}"; do
echo "Fruta: $fruta"
done
Loop While
#!/bin/bash
# Contagem regressiva de 5 a 1
contador=5
while [ $contador -ge 1 ]; do
echo "$contador..."
((contador--))
sleep 1 # Espera 1 segundo
done
echo "Fogo!"
Explicação:
for
itera sobre elementos de uma lista.while
executa enquanto a condição for verdadeira.((contador--))
usa aritmética do Bash.
Funções e Parâmetros
Objetivo: Criar funções reutilizáveis e trabalhar com argumentos.
#!/bin/bash
# Função que soma dois números
somar() {
resultado=$(( $1 + $2 ))
echo "A soma de $1 e $2 é: $resultado"
}
# Chama a função com parâmetros
somar 15 25
# Usa argumentos passados ao script
echo "Argumentos recebidos: $#"
echo "Primeiro argumento: $1"
Explicação:
$1
,$2
são parâmetros passados à função ou script.$#
retorna o número de argumentos.
Manipulação de Arquivos
Objetivo: Ler, filtrar e modificar arquivos.
#!/bin/bash
# Conta linhas de um arquivo que contêm uma palavra-chave
arquivo="documento.txt"
palavra="Linux"
# Verifica se o arquivo existe
if [ ! -f "$arquivo" ]; then
echo "Erro: $arquivo não encontrado."
exit 1
fi
# Filtra linhas e conta ocorrências
contagem=$(grep -c "$palavra" "$arquivo")
echo "A palavra '$palavra' aparece $contagem vezes no arquivo."
# Adiciona texto ao final do arquivo
echo "Adicionando uma nova linha em $(date)" >> "$arquivo"
Explicação:
grep -c
conta ocorrências de uma palavra.>>
redireciona a saída para um arquivo (append).exit 1
encerra o script com erro.
Dicas de Boas Práticas Sobre Scripts Bash
- Comentários: Documente seu código para facilitar a manutenção.
- Testes: Use
bash -x script.sh
para depurar. - Permissões: Torne o script executável com
chmod +x script.sh
. - Validação: Sempre verifique se arquivos ou diretórios existem antes de usá-los.
- Segurança: Evite usar
eval
ou variáveis não validadas para prevenir injeção de código.
Conclusão
Com esses exemplos, você já pode começar a automatizar tarefas cotidianas no Linux, como processar arquivos, iterar listas e criar ferramentas personalizadas. À medida que ganha confiança, explore recursos avançados como:
- Expressões regulares para buscas complexas.
- Arrays associativos para estruturas de dados.
- Crontab para agendar scripts automaticamente.
O Bash é uma ferramenta poderosa que, combinada com sua criatividade, pode transformar sua eficiência no terminal.
Recursos Adicionais:
- Guia de Referência do Bash (GNU)
- Bash Scripting Tutorial (LinuxConfig)
- Exercícios Práticos no ShellCheck (validador de scripts).