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:
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:
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”.
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.
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
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
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.