Contents

5 exemplos de scripts Bash para o ajudar a aprender programação para Linux

Ligações Rápidas

⭐ Como Imprimir o Olá Mundo no Bash

⭐ Criar um Diretório Lendo a Entrada

⭐ Criar um Diretório Usando Argumentos de Linha de Comando

Apagar um ficheiro usando uma função Bash

⭐ Criar uma calculadora básica para cálculos aritméticos

Os scripts Bash representam um meio altamente prevalente e facilmente acessível pelo qual os utilizadores podem programar os seus dispositivos informáticos baseados em Linux-baseados em Linux. O fornecimento de amostras de scripts rudimentares facilitará a compreensão dos processos subjacentes e fornecerá uma introdução aos princípios fundamentais da programação Bash.

Como imprimir Hello World em Bash

De facto, a estimada demonstração “Hello World” serve como uma excelente introdução aos meandros de qualquer linguagem de programação, incluindo a venerada linguagem de script Bash.

Para gerar uma saída polida no Bash, pode-se empregar uma sintaxe de linha de comando concisa e expressiva que aproveita os comandos e parâmetros incorporados. O processo de impressão de “Hello World” envolve a invocação do utilitário echo com os argumentos apropriados para apresentar o texto no ecrã do terminal.

Abra um editor de texto adequado, como o Microsoft Word ou o Google Docs, e comece a trabalhar num novo documento que inclua as linhas de código-fonte que se seguem:

⭐ A primeira linha dos seus scripts Bash deve ser sempre assim:

 #!/bin/bash 

A diretiva shebang, denotada pelo símbolo “#!” seguido de um caminho para um binário executável e interpretado pelo carregador do sistema operativo, serve como um componente crítico na determinação do interpretador apropriado para executar um dado script. Especificamente, ao encontrar o comando shebang “#!/bin/bash” num ficheiro de script, o sistema operativo invoca o interpretador Bash para executar o script em conformidade.

⭐ Qualquer linha que comece com o símbolo # é um comentário. A linha shebang é um caso especial, mas você pode usar seus próprios comentários para explicar seu código. Adicione um comentário na linha 2, por exemplo:

 # Print some text from a bash script 

⭐ Você pode imprimir na saída padrão usando o comando echo, seguido do valor que deseja imprimir. Adicione o seguinte na linha 3:

 echo "Hello World" 

Ao criar um script no Bash, é recomendável aderir a uma convenção de nomes anexando uma extensão de arquivo “.sh” ao nome do arquivo do script. Embora isso não seja estritamente necessário, o uso de tal convenção pode ajudar a tornar os scripts mais facilmente identificáveis e organizados.

⭐ Para executar o seu script, torne o ficheiro executável.Utilize o comando chmod (“modo de alteração”) juntamente com o argumento \\+x (“executável”) e o nome do seu script de shell:

 chmod \\+x hello_world.sh 

⭐ Utilize este comando para executar o script a partir do seu diretório:

 ./hello_world.sh 

⭐ Quando o script for executado, ele imprimirá o texto “Hello World” no seu terminal: /pt/images/screenshot-2024-01-09-at-13-31-56.png

Criar um diretório lendo a entrada

Incorporar a funcionalidade de executar comandos tipicamente introduzidos no terminal, como a criação de um novo diretório através da utilização do comando mkdir dentro de um script, é possível através da implementação de scripts personalizados.

⭐ Começar com a mesma linha shebang que anteriormente:

 #!/bin/bash 

⭐ Pedir ao utilizador o nome de um diretório, utilizando o comando echo como anteriormente:

 echo "Enter new directory name:" 

⭐ Utilizar o comando read incorporado para obter o input do utilizador. O único argumento nomeia uma variável na qual o shell armazenará a entrada:

 read newdir 

⭐ Quando você precisar usar o valor armazenado em uma variável, prefixe seu nome com um símbolo de dólar ( $ ). Pode passar o conteúdo da variável de entrada como um argumento para o comando mkdir, para criar um novo diretório:

 mkdir $newdir 

⭐ Quando executa este script, ele pede-lhe uma entrada. Introduza um nome de diretório válido e verá que o script o cria no seu diretório atual: /pt/images/screenshot-2024-01-09-at-13-39-11.png

Criar um Diretório Usando Argumentos de Linha de Comando

Em vez de introduzir manualmente entradas, muitos programas de linha de comando do Linux permitem que sejam fornecidos argumentos durante a execução, de modo a influenciar o seu funcionamento.

Dentro do âmbito do seu script, é possível utilizar as variáveis $1 a $9 para representar os valores dos argumentos um a nove, respetivamente. A aplicação específica ou o objetivo para o qual estas variáveis são utilizadas pode variar com base nos requisitos da tarefa em questão.

⭐ Crie um diretório usando o comando mkdir do exemplo anterior. No entanto, desta vez, use a variável interna $1:

 #!/bin/bash
mkdir $1 

⭐ Execute o script, desta vez passando o nome escolhido de um novo diretório como argumento:

 ./arg_dir.sh Test 

Ao executar o script sem fornecer nenhuma entrada, pode-se encontrar um erro de uso que começa com “mkdir”.

/pt/images/screenshot-2024-01-09-at-13-42-32.png

Na ausência de argumentos de linha de comando, o primeiro parâmetro posicional ($1) produzirá um valor vazio. Ao executar o comando “mkdir” dentro de um script, não há nenhum argumento sendo passado para ele, resultando em um erro sendo retornado pelo comando “mkdir”.Para contornar este problema, é possível verificar essas condições e fornecer uma mensagem de erro mais fácil de utilizar.

⭐ Como sempre, comece com a linha shebang:

 #!/bin/bash 

⭐ Antes de chamar o mkdir, verifique se o primeiro argumento está vazio (ou seja, sem argumentos). Você pode fazer isso usando a instrução if do Bash, que executa código baseado numa condição:

 if ["$1" = ""]; then 

⭐ Se o primeiro argumento estiver vazio, imprima um erro e saia do seu script:

     echo "Please provide a new directory name as the first argument"
    exit 

⭐ A palavra-chave “fi” (“if” invertido) sinaliza o fim de uma instrução if no Bash:

 fi 

⭐ Seu script pode agora continuar como antes, para lidar com o caso em que um argumento está presente:

 mkdir $1 

Ao executar a iteração actualizada do programa de software atual, é imperativo que todos os parâmetros de entrada necessários sejam fornecidos; se isso não for feito, será gerada uma notificação de alerta informando o utilizador desse lapso.

/pt/images/screenshot-2024-01-09-at-13-49-38.png

Eliminar um ficheiro utilizando uma função Bash

Se encontrar código repetitivo, pode ser benéfico encapsulá-lo numa função. Isso permite a implementação da lógica da função em qualquer ponto desejado, simplesmente chamando-a conforme necessário.

Certamente, aqui está uma ilustração de uma função que elimina um ficheiro especificado.

⭐ Comece com a linha shebang:

 #!/bin/bash 

⭐ Defina uma função escrevendo o seu nome seguido de parênteses vazios e comandos dentro de chavetas:

 del_file() {
    echo "deleting $1"
    rm $1
} 

Pode então chamar a função e passar-lhe o nome de um ficheiro a eliminar:

 del_file test.txt 

/pt/images/bash-del-file.png

Quando a invocação de uma função é executada, atribui uma variável especial única “$?” com o código de saída do comando final que foi executado. Este código de saída serve como um meio eficaz para avaliar erros e pode ser utilizado para determinar se o comando “rm” foi executado com sucesso ou não, como demonstrado neste exemplo.

 if [ $? -ne 0 ]; then
    echo "Sorry, could not delete the file"
fi 

/pt/images/bash-del-file-fail.png

Criar uma calculadora básica para cálculos aritméticos

A instância a seguir exemplifica um dispositivo de cálculo rudimentar. Após a execução, o utilizador introduz dois números e selecciona uma função aritmética para os executar.

Aqui está o código para calc.sh :

 #!/bin/bash

# Take operands as input
echo "Enter first number: "
read a

echo "Enter second number: "
read b

 # Input type of operation
echo "Enter Arithmetic Operation Choice :"
echo "Addition"
echo "Subtraction"
echo "Multiplication"
echo "Division"
read choice

 # calculator operations
case $choice in
  1)
 result=`echo $a \\+ $b | bc`
  ;;

  2)
 result=`echo $a - $b | bc`
 ;;

  3)
 result=`echo $a \* $b | bc`
  ;;

  4)
 result=`echo "scale=2; $a / $b" | bc`
  ;;
esac

echo "Result: $result" 

Considere a utilização da expressão case em Bash, que serve como uma construção análoga à instrução switch presente em várias linguagens de programação.Isto permite a avaliação do valor de um parâmetro em relação a vários valores pré-determinados, executando subsequentemente a funcionalidade correspondente com base no resultado dessa avaliação.

Este script emprega a utilização do comandobcc para efetuar todas as operações aritméticas.

/pt/images/bash-calc.png