Írjunk scriptet egyszerűen! (Linux alapok, 13. rész)
Shell scriptek kezdőknek: az első script, változók és paraméterek, elágazás és ciklus, végül egy működő napi mentőscript.
Aki már néhány hete használja a terminált, előbb-utóbb észreveszi, hogy ugyanazokat a parancsokat gépeli be újra és újra. Ilyenkor jön jól a shell script: egy egyszerű szöveges fájl, amelyben a parancsok egymás után szerepelnek, és egyetlen hívással lefuttathatók.
Az első script
Nyissunk egy szövegszerkesztőt (gedit, kate vagy a terminálban a nano), és írjuk be:
#!/bin/bash
# az első scriptünk
echo "Szia, $USER! Ma $(date +%Y-%m-%d) van."
Az első sor, a „shebang”, megmondja a rendszernek, melyik program értelmezze a fájlt. Mentsük el hello.sh néven, adjunk rá futtatási jogot a chmod +x hello.sh paranccsal, és indítsuk el: ./hello.sh.
Változók és paraméterek
Változót egyenlőségjellel adunk meg, szóköz nélkül: nev="ITport". Az értékére dollárjellel hivatkozunk: echo $nev. A scriptnek átadott paraméterek a $1, $2 … változókba kerülnek, a számukat a $# adja meg. A $(parancs) forma egy parancs kimenetét helyettesíti be – fent így került a dátum a szövegbe.
Elágazás és ciklus
if [ -f "$1" ]; then
echo "$1 létezik"
else
echo "$1 nem található"
fi
for f in *.txt; do
echo "Feldolgozom: $f"
done
A szögletes zárójelek körüli szóközök kötelezőek – ez a kezdők leggyakoribb hibája.
Gyakorlati példa: napi mentés
Az alábbi script a saját Dokumentumok mappánkat dátummal ellátott, tömörített archívumba menti egy külső lemezre:
#!/bin/bash
CEL="/media/usbdisk/mentes"
NAP=$(date +%Y-%m-%d)
mkdir -p "$CEL"
tar -czf "$CEL/dokumentumok-$NAP.tar.gz" "$HOME/Dokumentumok"
echo "Kész: $CEL/dokumentumok-$NAP.tar.gz"
Ha a crontab -e paranccsal felvesszük az ütemezett feladatok közé, a mentés minden este magától lefut. A következő részben a cron használatával részletesen foglalkozunk.