5 exemplos de script Bash para ajudá-lo a aprender programação Linux

O script Bash é uma das formas mais populares e acessíveis de programar seu computador Linux. Esses exemplos simples de script ajudarão você a entender o processo e apresentarão os fundamentos da programação Bash.

1. Como imprimir Hello World no Bash

O exemplo Hello World é uma ótima maneira de aprender sobre qualquer linguagem de programação, e o Bash não é exceção.

Veja como imprimir “Hello World” usando Bash:

  • Abra um editor de texto e comece a editar um novo arquivo contendo as seguintes linhas de código.
  • A primeira linha dos seus scripts Bash deve sempre ficar assim:
     #!/bin/bash 

    O comando Shebang (#!/bin/bash) é essencial, pois o shell o utiliza para decidir como executar o script. Neste caso, utiliza o interpretador Bash.

  • 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:
      
  • 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" 
  • Salve o script, de preferência com uma extensão .sh, por exemplo, hello_world.sh. A extensão não é um requisito, mas é uma convenção que é útil seguir.
  • Para executar seu script, torne o arquivo executável. Use o comando chmod (“modo de mudança”) junto com o argumento +x (“executável”) e o nome do seu script de shell:
     chmod +x hello_world.sh 
  • Use este comando para executar o script de dentro de seu diretório:
     ./hello_world.sh 
  • Quando o script for executado, ele imprimirá o texto “Hello World” em seu terminal:
  •   6 melhores aplicativos de acesso remoto para Linux

    2. Crie um diretório lendo a entrada

    A partir de seus scripts, você pode executar qualquer programa que normalmente executaria na linha de comando. Por exemplo, você pode criar um novo diretório a partir do seu script usando o comando mkdir.

  • Comece com a mesma linha shebang de antes:
     #!/bin/bash 
  • Solicite ao usuário um nome de diretório, usando o comando echo como antes:
     echo "Enter new directory name:" 
  • Use o comando de leitura integrado para buscar a entrada do usuário. O argumento único 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 cifrão ($). Você pode passar o conteúdo da variável de entrada como argumento para o comando mkdir, para criar um novo diretório:
     mkdir $newdir 
  • Ao executar este script, ele solicitará uma entrada. Insira um nome de diretório válido e você verá que o script o cria em seu diretório atual:
  • 3. Crie um diretório usando argumentos de linha de comando

    Como alternativa à leitura interativa da entrada, a maioria dos comandos do Linux suporta argumentos. Você pode fornecer um argumento ao executar um programa, para controlar seu comportamento.

    Dentro do seu script, você pode usar $1 para se referir a uma variável especial que contém o valor do primeiro argumento. $2 se referirá ao segundo argumento e assim por diante.

      Como jogar Mad Max no Linux
  • Crie um diretório usando o comando mkdir do exemplo anterior. No entanto, desta vez, use a variável integrada $1:
     #!/bin/bash
    mkdir $1
  • Execute o script, desta vez passando o nome escolhido para um novo diretório como argumento:
     ./arg_dir.sh Test 
  • Você pode estar se perguntando o que acontece se você executar o script sem fornecer nenhum argumento. Experimente e veja; você deverá receber uma mensagem de erro que inicia “usage: mkdir”:

    Sem quaisquer argumentos de linha de comando, o valor de $1 estará vazio. Quando seu script chama mkdir, ele não passa um argumento para ele e o comando mkdir retornará esse erro. Para evitar isso, você mesmo pode verificar a condição e apresentar um erro mais amigável:

  • Como sempre, comece com a linha shebang:
     #!/bin/bash 
  • Antes de chamar mkdir, verifique se há um primeiro argumento vazio (ou seja, sem argumentos). Você pode fazer isso usando a instrução if do Bash, que executa o código com base em uma 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” ligeiramente estranha (“if” invertida) sinaliza o fim de uma instrução if no Bash:
     fi 
  • Seu script agora pode continuar como antes, para lidar com o caso quando um argumento estiver presente:
     mkdir $1 
  • Ao executar esta nova versão do script, você receberá uma mensagem caso esqueça de incluir um argumento:

      Como encontrar informações do disco rígido no Linux

    4. Exclua um arquivo usando uma função Bash

    Se você estiver repetindo o mesmo código, considere envolvê-lo em uma função. Você pode então chamar essa função sempre que precisar.

    Aqui está um exemplo de função que exclui um determinado arquivo.

  • Comece com a linha shebang:
     #!/bin/bash 
  • Defina uma função escrevendo seu nome seguido de parênteses vazios e comandos entre chaves:
     del_file() {
        echo "deleting $1"
        rm $1
    }

    Você pode então chamar a função e passar o nome de um arquivo para excluir:

     del_file test.txt 

  • Quando você chama uma função, ela define o valor especial $? valor com o status de saída do último comando executado. O status de saída é útil para verificação de erros; neste exemplo, você pode testar se o comando rm foi bem-sucedido:

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

    5. Crie uma calculadora básica para cálculos aritméticos

    Este exemplo final demonstra uma calculadora muito básica. Ao executá-lo, você inserirá dois valores e escolherá uma operação aritmética para realizar sobre eles.

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

     #!/bin/bash


    echo "Enter first number: "
    read a

    echo "Enter second number: "
    read b


    echo "Enter Arithmetic Operation Choice :"
    echo "1. Addition"
    echo "2. Subtraction"
    echo "3. Multiplication"
    echo "4. Division"
    read choice


    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"

    Observe o uso de case … esac que é o equivalente do Bash à instrução switch de outras linguagens. Ele permite testar um valor – neste caso, a variável de escolha – em relação a vários valores fixos e executar o código associado.

    Este script usa o comando bc para realizar cada cálculo.