Por que todo programador deve aprender Bash e como começar

Leandro Padula

Share this article

Introdução

Há algumas semanas, embarcamos em um artigo discutindo a importância de aprender Bash para programadores, visando criar uma série de artigos que permitiriam aos programadores mergulhar no Bash enquanto seguem as melhores práticas. Reconhecemos a quantidade significativa de informações disponíveis que muitas vezes negligenciam essas diretrizes essenciais.

Este artigo, especificamente voltado para programadores, tem como objetivo orientá-los na criação de seus scripts iniciais, enfatizando a importância de seguir as melhores práticas.

Primeiros Passos no Bash

Se você é um programador procurando automatizar tarefas ou gerenciar configurações do sistema, aprender a escrever scripts Bash pode ser uma ferramenta incrivelmente poderosa. Bash é um shell de linha de comando e uma linguagem de script usada no Linux, macOS e outros sistemas operacionais baseados em Unix. Neste post do blog, forneceremos um guia passo a passo sobre como escrever seu primeiro script Bash, juntamente com um exemplo.

Passo 0: Escolha seu Editor de Texto

Antes de começarmos a escrever nosso primeiro script Bash, precisamos escolher um editor de texto. Você pode usar qualquer editor de texto com o qual se sinta confortável, mas recomendamos usar o Visual Studio Code.
Para obter informações detalhadas sobre as extensões recomendadas e suas configurações correspondentes para o Visual Studio Code, consulte o seguinte artigo: gauchocode.com/why-learn-bash

Passo 1: Criar nosso primeiro Script

Não há melhor maneira de aprender do que praticando, então o primeiro passo será criar a base do nosso script Bash e, em seguida, testar e executar o código nele conforme necessário.

Abra seu editor de texto e crie um novo arquivo

Chamaremos este arquivo de “myscript.sh“. A extensão “.sh” indica que este é um script Bash

Adicione o Shebang

A primeira linha de um script Bash deve sempre começar com um shebang. O shebang diz ao sistema qual intérprete usar para executar o script. Adicione a seguinte linha no início do seu script:

!/bin/bash

Imprima algo

Agora que temos nosso arquivo configurado, é hora de escrever um script simples que cumprimente o usuário:

!/bin/bash

echo "Welcome to my first Bash script!"

Passo 2: Salvar e Executar Nosso Script

Salve o script e torne-o executável executando o seguinte comando no seu terminal:

chmod +x myscript.sh

Este comando torna o arquivo executável. Agora, podemos executar nosso script digitando o seguinte comando:

./myscript.sh

Você deve ver a seguinte saída no seu terminal:

Welcome to my first Bash script!

Passo 3: Aprender os conceitos básicos de Bash com boas práticas

Neste passo, explicarei alguns conceitos de script Bash com boas práticas, que você pode testar no script recém-criado para avaliar a saída.

Variáveis

  • As variáveis devem sempre ser referenciadas na forma ${var}, em vez de $var
  • As variáveis devem sempre ser citadas, especialmente se seu valor pode conter um espaço em branco ou caractere separador: “${var}”
# Correct
greeting="Hello, World!"
echo "${greeting}"  # Output: Hello, World!

# Incorrect
greeting=Hello, World!
echo $greeting 
Capitalização
  • Variáveis de ambiente (exportadas): ${ALL_CAPS}
  • Variáveis locais: ${lower_case}
Prefira variáveis locais dentro de funções em vez de variáveis globais

Se precisar de variáveis globais, torne-as somente leitura:

readonly GLOBAL_VAR="Initial value"

GLOBAL_VAR="New value"  # This will generate an error

Arrays

Aqui estão algumas boas práticas para trabalhar com arrays no Bash:

# Explicitly declare arrays to enhance code clarity and prevent unexpected behavior
my_array=()

# Initialize an array 
my_array=(1 2 3)  

# Retrieve third element 
${my_array[2]}

# Retrieve all elements 
${my_array[@]} 

# Retrieve array indices 
${!my_array[@]} 

# Calculate array size 
${#my_array[@]} 

# Overwrite 1st element 
my_array[0]=3

# Append value(s) 
my_array+=(4) 

# Save ls output as an array of files 
my_array=( $(ls) )

# Retrieve n elements starting at index s
${my_array[@]:s:n}

# Remove an element from an array
unset my_array[2]

# Iterate over array elements
for element in "${my_array[@]}"; do
    echo "${element}"
done

# Check if an array is empty
if [[ ${#my_array[@]} -eq 0 ]]; then
    echo "Array is empty"
fi

Sempre use a notação de parâmetro longo quando disponível

A notação longa torna o script mais legível, especialmente para comandos menos conhecidos/usados para os quais você não lembra todas as opções.

# Good:
rm --recursive --force -- "${dir}"

# Avoid:
rm -rf -- "${dir}"

Tornando seus scripts mais robustos e resistentes a erros com exit e return

exit

Use códigos de saída ($?) para indicar o sucesso ou falha do script. Convencionalmente, um código de saída 0 indica sucesso, enquanto qualquer valor diferente de zero representa um erro ou falha.

Forneça mensagens de erro significativas ao sair devido a um erro, tornando mais fácil diagnosticar e solucionar problemas.

# Exiting with an error message
if [[ ! -f "${file}" ]]; then
    echo "Error: File not found!"
    exit 1
fi
return

Use a declaração return para indicar o sucesso ou falha de uma função retornando um código de saída. Semelhante ao comando exit, convencionalmente, um código de saída 0 representa sucesso, enquanto valores diferentes de zero representam erros.

# Using return within a function and an if statement
function my_function() {
    if [[ "${var}" = "value" ]]; then
        echo "Condition met. Returning..."
        return 0
    fi
    # Rest of the function code
}

Exemplo: Script de Backup Automatizado

Agora que você aprendeu o básico, vamos criar um exemplo mais prático. Neste exemplo, criaremos um script que faz backup automático de um diretório.

!/bin/bash

# Set the backup directory
BACKUP_DIR="/home/user/backup"

# Create the backup directory if it doesn't exist
if [[ ! -d "${BACKUP_DIR}" ]]; then
   mkdir "${BACKUP_DIR}"
fi

# Archive the directory and save it to the backup directory
tar --create --gzip --verbose --file "${BACKUP_DIR}/mybackup.tar.gz" /home/user/mydirectory

# Print a success message
echo "Backup complete!"

Este script define o diretório de backup, cria-o se ele não existir, arquiva o diretório e salva-o no diretório de backup. Em seguida, imprime uma mensagem de sucesso.

Encerrando

A escrita de scripts Bash é uma habilidade valiosa que pode ajudá-lo a automatizar tarefas e gerenciar configurações do sistema. Com os passos e exemplo fornecidos neste post do blog, você deve ser capaz de escrever seu primeiro script Bash e começar a explorar o poder da escrita de scripts Bash.”

Leandro Padula

Software development expert with a proven track record of delivering successful solutions for companies of all sizes.

Share this article

Deixe um comentário

Related articles

Ready to get your project started?

Book a call