5 exemple de script Bash pentru a vă ajuta să învățați programarea Linux

Bash scripting este una dintre cele mai populare și accesibile modalități de programare a computerului Linux. Aceste exemple simple de script vă vor ajuta să înțelegeți procesul și vă vor prezenta elementele de bază ale programării Bash.

1. Cum să imprimați Hello World în Bash

Exemplul Hello World este o modalitate excelentă de a învăța despre orice limbaj de programare, iar Bash nu face excepție.

Iată cum să imprimați „Hello World” folosind Bash:

  • Deschideți un editor de text și începeți să editați un fișier nou care conține următoarele linii de cod.
  • Prima linie a scripturilor tale Bash ar trebui să arate întotdeauna astfel:
     #!/bin/bash 

    Comanda Shebang (#!/bin/bash) este esențială, deoarece shell-ul o folosește pentru a decide cum să ruleze scriptul. În acest caz, folosește interpretul Bash.

  • Orice linie care începe cu simbolul # este un comentariu. Linia shebang este un caz special, dar puteți folosi propriile comentarii pentru a vă explica codul. Adăugați un comentariu pe linia 2, de exemplu:
      
  • Puteți imprima la ieșire standard folosind comanda echo, urmată de valoarea pe care doriți să o imprimați. Adăugați următoarele pe linia 3:
     echo "Hello World" 
  • Salvați scriptul, de preferință cu o extensie .sh, de exemplu hello_world.sh. Extensia nu este o cerință, dar este o convenție la care este util să respectați.
  • Pentru a rula scriptul, faceți fișierul executabil. Utilizați comanda chmod („modul de schimbare”) împreună cu argumentul +x („executabil”) și numele script-ului shell:
     chmod +x hello_world.sh 
  • Utilizați această comandă pentru a rula scriptul din directorul său:
     ./hello_world.sh 
  • Când rulează scriptul, va tipări textul „Hello World” pe terminalul tău:
  •   Cum se instalează Debian Linux

    2. Creați un director prin citirea intrării

    Din scripturile dvs., puteți rula orice program pe care l-ați putea rula în mod normal pe linia de comandă. De exemplu, puteți crea un director nou din scriptul dvs. folosind comanda mkdir.

  • Începeți cu aceeași linie shebang ca înainte:
     #!/bin/bash 
  • Solicitați utilizatorului un nume de director, folosind comanda echo ca înainte:
     echo "Enter new directory name:" 
  • Utilizați comanda de citire încorporată pentru a prelua intrarea utilizatorului. Singurul argument denumește o variabilă în care shell-ul va stoca intrarea:
     read newdir 
  • Când trebuie să utilizați valoarea stocată într-o variabilă, prefixați numele acesteia cu un simbol dolar ($). Puteți trece conținutul variabilei de intrare ca argument la comanda mkdir, pentru a crea un director nou:
     mkdir $newdir 
  • Când rulați acest script, vă va solicita introducerea. Introduceți un nume de director valid și veți vedea că scriptul îl creează în directorul dvs. curent:
  • 3. Creați un director folosind argumentele liniei de comandă

    Ca alternativă la citirea interactivă a intrărilor, majoritatea comenzilor Linux acceptă argumente. Puteți furniza un argument atunci când rulați un program, pentru a-i controla comportamentul.

    În scriptul tău, poți folosi $1 pentru a te referi la o variabilă specială care conține valoarea primului argument. $2 se va referi la al doilea argument și așa mai departe.

  • Creați un director folosind comanda mkdir din exemplul anterior. Cu toate acestea, de data aceasta, utilizați variabila încorporată $1:
     #!/bin/bash
    mkdir $1
  • Rulați scriptul, de data aceasta trecând numele ales pentru un nou director ca argument:
     ./arg_dir.sh Test 
  • S-ar putea să vă întrebați ce se întâmplă dacă rulați scriptul fără a furniza deloc un argument. Încearcă și vezi; ar trebui să primiți un mesaj de eroare care începe „usage: mkdir”:

      6 cele mai bune instrumente de gestionare a timpului pentru Linux

    Fără niciun argument de linie de comandă, valoarea lui $1 va fi goală. Când scriptul dvs. apelează mkdir, acesta nu îi va transmite un argument, iar comanda mkdir va returna acea eroare. Pentru a evita acest lucru, puteți verifica singur starea și puteți prezenta o eroare mai prietenoasă:

  • Ca întotdeauna, începeți cu linia shebang:
     #!/bin/bash 
  • Înainte de a apela mkdir, verificați un prim argument gol (adică fără argumente). Puteți face acest lucru folosind instrucțiunea if a lui Bash, care rulează cod pe baza unei condiții:
     if ["$1" = ""]; then 
  • Dacă primul argument este gol, tipăriți o eroare și părăsiți scriptul:
         echo "Please provide a new directory name as the first argument"
        exit
  • Cuvântul cheie ușor ciudat „fi” („dacă” inversat) semnalează sfârșitul unei declarații if în Bash:
     fi 
  • Scriptul dvs. poate continua acum ca înainte, pentru a gestiona cazul în care este prezent un argument:
     mkdir $1 
  • Când rulați această nouă versiune a scriptului, veți primi un mesaj dacă uitați să includeți un argument:

    4. Ștergeți un fișier utilizând o funcție Bash

    Dacă repetați același cod, luați în considerare includerea lui într-o funcție. Puteți apela apoi acea funcție oricând aveți nevoie.

    Iată un exemplu de funcție care șterge un anumit fișier.

  • Începe cu linia shebang:
     #!/bin/bash 
  • Definiți o funcție scriind numele acesteia urmat de paranteze și comenzi goale în paranteze:
     del_file() {
        echo "deleting $1"
        rm $1
    }

    Apoi puteți apela funcția și îi puteți transmite numele unui fișier de șters:

     del_file test.txt 

  • Când apelați o funcție, aceasta va seta valoarea specială $? valoare cu starea de ieșire a ultimei comenzi pe care o rulează. Starea de ieșire este utilă pentru verificarea erorilor; în acest exemplu, puteți testa dacă comanda rm a reușit:

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

    5. Creați un calculator de bază pentru calcule aritmetice

    Acest exemplu final demonstrează un calculator foarte simplu. Când îl rulați, veți introduce două valori, apoi veți alege o operație aritmetică pentru a le efectua.

      Cum să utilizați comanda chroot pe Linux

    Iată codul pentru 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"

    Observați utilizarea casei… esac, care este echivalentul lui Bash al instrucțiunii switch din alte limbi. Vă permite să testați o valoare – în acest caz, variabila de alegere – împotriva mai multor valori fixe și să rulați codul asociat.

    Acest script folosește comanda bc pentru a efectua fiecare calcul.