5 Bash Script-eksempler, der hjælper dig med at lære Linux-programmering

Bash-scripting er en af ​​de mest populære, tilgængelige måder at programmere din Linux-computer på. Disse enkle script-eksempler hjælper dig med at forstå processen og introducere dig til det grundlæggende i Bash-programmering.

1. Sådan udskriver du Hello World i Bash

Hello World-eksemplet er en fantastisk måde at lære om ethvert programmeringssprog, og Bash er ingen undtagelse.

Sådan udskriver du “Hello World” ved hjælp af Bash:

  • Åbn en teksteditor, og begynd at redigere en ny fil, der indeholder følgende kodelinjer.
  • Den første linje af dine Bash-scripts skal altid se sådan ud:
     #!/bin/bash 

    Shebang-kommandoen (#!/bin/bash) er vigtig, da skallen bruger den til at bestemme, hvordan scriptet skal køres. I dette tilfælde bruger den Bash-tolken.

  • Enhver linje, der starter med et #-symbol, er en kommentar. Shebang-linjen er et særligt tilfælde, men du kan bruge dine egne kommentarer til at forklare din kode. Tilføj en kommentar på linje 2, f.eks.:
      
  • Du kan udskrive til standardoutput ved hjælp af ekko-kommandoen efterfulgt af den værdi, du vil udskrive. Tilføj følgende på linje 3:
     echo "Hello World" 
  • Gem scriptet, gerne med en .sh-udvidelse, fx hello_world.sh. Udvidelsen er ikke et krav, men det er en konvention, som er nyttig at holde sig til.
  • For at køre dit script skal du gøre filen eksekverbar. Brug kommandoen chmod (“change mode”) sammen med +x (“eksekverbart”) argument og navnet på dit shell-script:
     chmod +x hello_world.sh 
  • Brug denne kommando til at køre scriptet fra dets mappe:
     ./hello_world.sh 
  • Når scriptet kører, vil det udskrive teksten “Hello World” til din terminal:
  •   Sådan gendannes tabte data på Linux

    2. Opret en mappe ved at læse input

    Fra dine scripts kan du køre ethvert program, som du normalt kører på kommandolinjen. For eksempel kan du oprette en ny mappe fra dit script ved at bruge mkdir-kommandoen.

  • Begynd med den samme shebang-linje som før:
     #!/bin/bash 
  • Bed brugeren om et mappenavn ved at bruge echo-kommandoen som før:
     echo "Enter new directory name:" 
  • Brug den indbyggede læsekommando til at hente brugerinput. Det enkelte argument navngiver en variabel, som skallen gemmer input i:
     read newdir 
  • Når du skal bruge værdien, der er gemt i en variabel, skal du forankre dens navn med et dollarsymbol ($). Du kan sende indholdet af inputvariablen som et argument til mkdir-kommandoen for at oprette en ny mappe:
     mkdir $newdir 
  • Når du kører dette script, vil det bede dig om input. Indtast et gyldigt mappenavn, og du vil se, at scriptet opretter det i din nuværende mappe:
  • 3. Opret en mappe ved hjælp af kommandolinjeargumenter

    Som et alternativ til at læse input interaktivt, understøtter de fleste Linux-kommandoer argumenter. Du kan levere et argument, når du kører et program, for at kontrollere dets adfærd.

    I dit script kan du bruge $1 til at henvise til en speciel variabel, der indeholder værdien af ​​det første argument. $2 vil referere til det andet argument, og så videre.

      Sådan spiller du Geometry Dash på Linux
  • Opret en mappe ved hjælp af mkdir-kommandoen fra det forrige eksempel. Denne gang skal du dog bruge den indbyggede variabel $1:
     #!/bin/bash
    mkdir $1
  • Kør scriptet, denne gang med dit valgte navn på en ny mappe som et argument:
     ./arg_dir.sh Test 
  • Du undrer dig måske over, hvad der sker, hvis du kører scriptet uden overhovedet at give et argument. Prøv det og se; du skulle modtage en fejlmeddelelse, der starter “brug: mkdir”:

    Uden kommandolinjeargumenter vil værdien af ​​$1 være tom. Når dit script kalder mkdir, vil det ikke sende et argument til det, og mkdir-kommandoen vil returnere denne fejl. For at undgå dette kan du selv tjekke for tilstanden og præsentere en mere venlig fejl:

  • Begynd som altid med shebang-linjen:
     #!/bin/bash 
  • Før du kalder mkdir, tjek efter et tomt første argument (dvs. ingen argumenter). Du kan gøre dette ved at bruge Bash’s if-sætning, som kører kode baseret på en betingelse:
     if ["$1" = ""]; then 
  • Hvis det første argument er tomt, skal du udskrive en fejl og afslutte dit script:
         echo "Please provide a new directory name as the first argument"
        exit
  • Det lidt mærkelige “fi” nøgleord (“if” omvendt) signalerer slutningen af ​​en if-sætning i Bash:
     fi 
  • Dit script kan nu fortsætte som før for at håndtere sagen, når et argument er til stede:
     mkdir $1 
  • Når du kører denne nye version af scriptet, får du en besked, hvis du glemmer at inkludere et argument:

    4. Slet en fil ved hjælp af en bash-funktion

    Hvis du finder dig selv at gentage den samme kode, kan du overveje at pakke den ind i en funktion. Du kan derefter kalde den funktion, når du har brug for det.

      Sådan installeres Mailspring på Linux

    Her er et eksempel på en funktion, der sletter en given fil.

  • Start med shebang-linjen:
     #!/bin/bash 
  • Definer en funktion ved at skrive dens navn efterfulgt af tomme parenteser og kommandoer inden for krøllede parenteser:
     del_file() {
        echo "deleting $1"
        rm $1
    }

    Du kan derefter kalde funktionen og give den navnet på en fil, der skal slettes:

     del_file test.txt 

  • Når du kalder en funktion, vil den sætte den særlige $? værdi med afslutningsstatus for den sidste kommando, den kører. Udgangsstatussen er nyttig til fejlkontrol; i dette eksempel kan du teste, om rm-kommandoen lykkedes:

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

    5. Opret en grundlæggende regnemaskine til aritmetiske beregninger

    Dette sidste eksempel demonstrerer en meget grundlæggende lommeregner. Når du kører det, skal du indtaste to værdier og derefter vælge en aritmetisk operation at udføre på dem.

    Her er koden til 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"

    Bemærk brugen af ​​kasus … esac, som er Bashs ækvivalent til switch-sætningen fra andre sprog. Det lader dig teste en værdi – i dette tilfælde valgvariablen – mod flere faste værdier og køre tilhørende kode.

    Dette script bruger bc-kommandoen til at udføre hver beregning.