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.
Tartalomjegyzék
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:
#!/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.
echo "Hello World"
chmod +x hello_world.sh
./hello_world.sh
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.
#!/bin/bash
echo "Enter new directory name:"
read newdir
mkdir $newdir
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.
#!/bin/bash
mkdir $1
./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:
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:
#!/bin/bash
if ["$1" = ""]; then
echo "Please provide a new directory name as the first argument"
exit
fi
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.
Íme egy példa egy adott fájlt törlő függvényre.
#!/bin/bash
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 aecho "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`
;;
esacecho "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.