5 Bash Script példa a Linux programozás elsajátítására

A Bash scripting az egyik legnépszerűbb és legelérhetőbb módja a Linux számítógép programozásának. Ezek az egyszerű szkriptpéldák segítenek megérteni a folyamatot, és bemutatják a Bash programozás alapjait.

1. A Hello World kinyomtatása a Bash-ban

A Hello World példa nagyszerű módja annak, hogy megtanuljunk bármilyen programozási nyelvet, és ez alól a Bash sem kivétel.

A következőképpen nyomtathatja ki a „Hello World” szöveget a Bash segítségével:

  • Nyisson meg egy szövegszerkesztőt, és kezdjen el szerkeszteni egy új fájlt, amely a következő kódsorokat tartalmazza.
  • A Bash-szkriptek első sorának mindig így kell kinéznie:
     #!/bin/bash 

    A Shebang parancs (#!/bin/bash) elengedhetetlen, mivel a shell ezt használja a szkript futtatásának eldöntésére. Ebben az esetben a Bash értelmezőt használja.

  • Minden # szimbólummal kezdődő sor megjegyzés. A shebang sor egy speciális eset, de használhatja saját megjegyzéseit a kód magyarázatához. Megjegyzés hozzáadása a 2. sorhoz, pl.:
      
  • A szabványos kimenetre nyomtathat az echo paranccsal, amelyet a nyomtatni kívánt érték követ. Adja hozzá a következőt a 3. sorhoz:
     echo "Hello World" 
  • Mentse el a szkriptet, lehetőleg .sh kiterjesztéssel, pl. hello_world.sh. A kiterjesztés nem követelmény, de ez egy konvenció, amelyet érdemes betartani.
  • A szkript futtatásához tegye futtathatóvá a fájlt. Használja a chmod („módosítási mód”) parancsot a +x („futtatható”) argumentummal és a shell szkript nevével együtt:
     chmod +x hello_world.sh 
  • Ezzel a paranccsal futtassa a szkriptet a könyvtárából:
     ./hello_world.sh 
  • Amikor a szkript fut, kinyomtatja a „Hello World” szöveget a termináljára:
  •   Számítógépe eszközeinek listázása a Linux terminálról

    2. Hozzon létre egy könyvtárat olvasási bemenettel

    A parancsfájlokból bármilyen programot futtathat, amelyet általában a parancssorban futtathat. Például létrehozhat egy új könyvtárat a szkriptből az mkdir paranccsal.

  • Kezdje ugyanazzal a shebang-sorral, mint korábban:
     #!/bin/bash 
  • Kérje meg a felhasználótól egy könyvtárnevet az echo paranccsal, mint korábban:
     echo "Enter new directory name:" 
  • Használja a beépített olvasási parancsot a felhasználói bevitel lekéréséhez. Az egyetlen argumentum megnevez egy változót, amelyben a shell tárolja a bemenetet:
     read newdir 
  • Ha egy változóban tárolt értéket kell használnia, írja be a nevét egy dollár szimbólummal ($). A bemeneti változó tartalmát argumentumként átadhatja az mkdir parancsnak új könyvtár létrehozásához:
     mkdir $newdir 
  • Amikor futtatja ezt a szkriptet, bevitelt kér. Adjon meg egy érvényes könyvtárnevet, és látni fogja, hogy a szkript létrehozza azt az aktuális könyvtárban:
  • 3. Hozzon létre egy könyvtárat parancssori argumentumokkal

    Az interaktív bevitel alternatívájaként a legtöbb Linux-parancs támogatja az argumentumokat. A program futtatásakor megadhat egy argumentumot a viselkedésének szabályozására.

    A szkripten belül a $1 használatával hivatkozhat egy speciális változóra, amely az első argumentum értékét tartalmazza. A $2 a második argumentumra fog hivatkozni, és így tovább.

  • Hozzon létre egy könyvtárat az előző példában szereplő mkdir paranccsal. Ezúttal azonban használja a $1 beépített változót:
     #!/bin/bash
    mkdir $1
  • Futtassa a szkriptet, ezúttal argumentumként átadva egy új könyvtár választott nevét:
     ./arg_dir.sh Test 
  • Lehet, hogy azon töpreng, mi történik, ha a szkriptet argumentum megadása nélkül futtatja. Próbáld ki és nézd meg; hibaüzenetet kell kapnia, amely elindítja a „usage: mkdir” szöveget:

      A Debian Linux telepítése

    Parancssori argumentumok nélkül a $1 értéke üres lesz. Amikor a szkript meghívja az mkdir-t, nem ad át neki argumentumot, és az mkdir parancs ezt a hibát adja vissza. Ennek elkerülése érdekében saját maga ellenőrizheti az állapotot, és barátságosabb hibát mutathat be:

  • Mint mindig, kezdje a shebang sorral:
     #!/bin/bash 
  • Mielőtt meghívná az mkdir-t, ellenőrizze, hogy nincs-e üres első argumentum (azaz nincs-e argumentum). Ezt megteheti a Bash if utasításával, amely egy feltétel alapján futtat kódot:
     if ["$1" = ""]; then 
  • Ha az első argumentum üres, nyomtasson egy hibát, és lépjen ki a szkriptből:
         echo "Please provide a new directory name as the first argument"
        exit
  • A kissé furcsa „fi” kulcsszó (az „if” megfordítva) jelzi az if utasítás végét a Bash-ban:
     fi 
  • A szkript most folytathatja a korábbiak szerint, hogy kezelje az esetet, amikor argumentum van jelen:
     mkdir $1 
  • A szkript ezen új verziójának futtatásakor üzenetet fog kapni, ha elfelejtett beilleszteni egy argumentumot:

    4. Töröljön egy fájlt Bash függvény segítségével

    Ha ugyanazt a kódot ismétli, fontolja meg egy függvénybe csomagolva. Ezután bármikor meghívhatja ezt a funkciót.

      3 módszer a merevlemez biztonságos törlésére Linux rendszeren

    Íme egy példa egy adott fájlt törlő függvényre.

  • Kezdje a shebang sorral:
     #!/bin/bash 
  • Határozzon meg egy függvényt úgy, hogy beírja a nevét, majd üres zárójeleket és parancsokat zárójelben:
     del_file() {
        echo "deleting $1"
        rm $1
    }

    Ezután meghívhatja a függvényt, és átadhatja neki a törölni kívánt fájl nevét:

     del_file test.txt 

  • Amikor meghív egy függvényt, beállítja a speciális $? értéket az utoljára futtatott parancs kilépési állapotával. A kilépési állapot hasznos a hibaellenőrzéshez; ebben a példában tesztelheti, hogy az rm parancs sikeres volt-e:

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

    5. Hozzon létre egy alapvető számológépet az aritmetikai számításokhoz

    Ez az utolsó példa egy nagyon egyszerű számológépet mutat be. Futtatásakor két értéket kell megadni, majd kiválasztani a rajtuk végrehajtandó aritmetikai műveletet.

    Íme a calc.sh kódja:

     #!/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"

    Vegye figyelembe a case … esac használatát, amely a Bash megfelelője a más nyelvek switch utasításának. Lehetővé teszi egy érték – ebben az esetben a választási változó – tesztelését több rögzített értékkel, és a kapcsolódó kód futtatását.

    Ez a szkript a bc parancsot használja az egyes számítások végrehajtásához.