Introdução aos scripts Bash: Exemplos de scripts de automação simples para começar
No artigo anterior, aprendemos as "palavras" básicas (comandos) do Bash, como cd e ls. Embora digitar comandos individuais seja útil, o verdadeiro poder do Bash reside em combinar estas palavras para criar "frases" ou "histórias", e fazer com que o computador trabalhe para si automaticamente. Isto é um script Bash.
Tem tarefas tediosas e repetitivas como "preparar a mesma estrutura de pastas para cada projeto", "redimensionar múltiplas imagens de uma vez", "fazer cópias de segurança de ficheiros periodicamente"? Se aprender a fazer scripts Bash, pode fazer com que essas tarefas terminem num instante, como por magia.
Este artigo destina-se a iniciantes que já se habituaram um pouco às operações de comandos. Vamos explicar desde a forma básica de escrever um script Bash até aos fundamentos da programação como variáveis, ramificações condicionais (if) e loops (for), tudo com exemplos de scripts de automação simples que pode copiar e colar para que funcionem. Como se estivesse a escrever uma receita de culinária, vamos criar a sua própria ferramenta de automação!
1. O seu primeiro script Bash - O primeiro passo na automação
Um script Bash nada mais é do que um simples ficheiro de texto com uma sequência de comandos que quer executar em ordem. Não precisa de nenhuma ferramenta especial para o criar. Vamos criar e executar um script simples imediatamente.
Passo 1: Criar o ficheiro de script
Primeiro, crie um ficheiro de texto chamado hello_script.sh e escreva o seguinte conteúdo. É uma prática comum usar a extensão .sh para os ficheiros de script.
#!/bin/bash
# Exibe uma mensagem no ecrã
echo "Olá, bem-vindo ao mundo dos scripts Bash!"
echo "A data e hora atuais são:"
date
Pense na primeira linha, #!/bin/bash, como um "feitiço mágico". É uma linha especial (chamada shebang) que diz ao sistema: "Ei, por favor, execute este ficheiro com o Bash."
Passo 2: Conceder permissão de execução
Um ficheiro de script recém-criado ainda não é reconhecido como um "programa executável". Vamos usar o comando chmod para dar ao ficheiro permissão de execução.
$ chmod +x hello_script.sh
Passo 3: Executar o script
Tudo pronto! Vamos executar o script com o seguinte comando. O ./ significa "no diretório atual".
$ ./hello_script.sh
Olá, bem-vindo ao mundo dos scripts Bash!
A data e hora atuais são:
Dom Jul 6 09:47:45 JST 2025
Os comandos que escreveu foram executados em ordem. Este é o princípio básico de um script Bash!
2. Variáveis e argumentos - Tornando os scripts flexíveis
Um script que só consegue fazer uma coisa fixa não é muito interessante. Por isso, vamos usar "variáveis" e "argumentos" para tornar os nossos scripts mais flexíveis.
Variáveis: "Caixas" para armazenar dados
Uma variável é uma "caixa com nome" onde pode guardar os dados que quiser (cadeias de texto ou números). Define-se com o formato NOME_VARIAVEL=valor e usa-se escrevendo $NOME_VARIAVEL.
#!/bin/bash
# Armazena uma cadeia de texto numa variável chamada GREETING
GREETING="Bem-vindo/a,"
USER_NAME="Alice"
# Exibe uma mensagem usando as variáveis
echo "$GREETING $USER_NAME!"
Argumentos: Dando informação a um script a partir do exterior
É uma chatice ter de reescrever o interior de um script cada vez que o quer executar. É aí que entram os "argumentos". Este é um mecanismo para passar informação para o script a partir do exterior quando o executa. Pode receber esta informação com $1, $2, e assim por diante, por número.
Vamos criar o seguinte script chamado greet.sh.
#!/bin/bash
# Armazena o primeiro argumento do tempo de execução na variável USER_NAME
USER_NAME=$1
echo "Olá, $USER_NAME!"
Quando executar este script, fá-lo-á com um nome a seguir.
$ ./greet.sh Bob
Olá, Bob!
Como pode ver, usar argumentos torna os scripts muito mais fáceis de reutilizar.
3. Ramificação condicional com 'if' - Alterando ações com base em condições
Um conceito fundamental da programação, "se isto, então aquilo", também pode ser facilmente escrito num script Bash. Para isso, usamos uma declaração if.
Por exemplo, vamos criar um script que verifica se um ficheiro especificado existe.
#!/bin/bash
FILE_NAME=$1
# se existir um "ficheiro" com o nome $FILE_NAME, então
if [ -f "$FILE_NAME" ]; then
echo "O ficheiro '$FILE_NAME' foi encontrado."
else
echo "O ficheiro '$FILE_NAME' não existe."
fi
A [ -f "nome_do_ficheiro" ] é a expressão condicional que verifica, "Esse ficheiro existe?". Vamos executar este script.
Se o ficheiro existir:
$ touch sample.txt
$ ./check_file.sh sample.txt
O ficheiro 'sample.txt' foi encontrado.
Se o ficheiro não existir:
$ ./check_file.sh another.txt
O ficheiro 'another.txt' não existe.
4. Tarefas repetitivas com loops 'for' - Acabe com o trabalho tedioso
A essência da automação reside na "repetição". Se tiver de repetir o mesmo tipo de tarefa muitas vezes, deixe o computador fazê-lo por si. Para isso, o loop for é muito prático.
Vejamos um script de exemplo que cria múltiplos ficheiros HTML de uma só vez como modelo para um site.
#!/bin/bash
# Repete um processo para os nomes about, works e contact
for page in about works contact
do
# Gera dinamicamente o nome do ficheiro e a tag H1 usando a variável da página
FILE_NAME="${page}.html"
TITLE_TEXT=$(echo "$page" | sed 's/./\u&/') # Pôr em maiúscula a primeira letra
# Usa um heredoc para escrever todo o HTML de uma vez
cat << EOF > $FILE_NAME
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="UTF-8">
<title>$TITLE_TEXT Page</title>
<style>
body { font-family: sans-serif; line-height: 1.6; color: #333; }
h1 { color: #0056b3; }
</style>
</head>
<body>
<h1>Esta é a página de $TITLE_TEXT.</h1>
<p>O conteúdo da página $page vai aqui.</p>
</body>
</html>
EOF
echo "Criado ${FILE_NAME}."
done
echo "Todas as páginas foram criadas!"
Este script realiza um loop para as três palavras about, works e contact, e gera um ficheiro HTML completo para cada nome. A parte de << EOF a EOF chama-se heredoc, e é útil para imprimir cadeias de várias linhas tal como estão.
Vamos executá-lo.
$ ./create_pages.sh
Criado about.html.
Criado works.html.
Criado contact.html.
Todas as páginas foram criadas!
Verifiquemos o conteúdo de um ficheiro gerado.
$ cat about.html
<!DOCTYPE html>
<html lang="pt">
...
<h1>Esta é a página de About.</h1>
...
</html>
Brilhantemente, foram criados três ficheiros HTML, cada um com conteúdo diferente, num instante!
Conclusão
Desta vez, como primeiro passo no mundo dos scripts Bash, vimos a sintaxe básica e exemplos simples de automação.
- Apenas colocando uma série de comandos num ficheiro, torna-se um script.
- Usar variáveis e argumentos torna os scripts mais flexíveis e reutilizáveis.
- Com uma declaração if, pode ramificar processos com base em condições.
- Com um loop for, pode deixar o trabalho tedioso e repetitivo para o computador.
Scripting pode soar difícil, mas no final, não é mais do que "escrever os comandos que escreve sempre à mão, por ordem". Primeiro, tente pensar se pode transformar as tarefas que faz frequentemente num script. Esse pequeno passo deverá libertá-lo do trabalho tedioso e permitir-lhe focar-se em tarefas mais criativas.
Agora que aprendeu a forma básica de escrever scripts, provavelmente quererá aprender formas mais práticas e "boas" de os escrever, e dicas para evitar erros comuns de iniciantes. No próximo artigo, vamos explicar essas melhores práticas.
[Guia Definitivo] 5 Padrões de Bash a Aprender e Como Evitar Erros