Bash script írása kezdőknek: az első szkripted lépésről lépésre

Bash script írása kezdőknek: az első szkripted lépésről lépésre

A bash script írása kezdőknek egyszerűbb, mint amilyennek elsőre látszik. Egy szkript nem más, mint egy szöveges fájl, amelybe parancsokat írsz egymás alá. Ha egyszer megírod, bármikor ugyanúgy lefuttathatod. Ebben az útmutatóban az elsőtől a hasznos mentő szkriptig jutsz el.

  • A bash script egy szöveges fájl, amely shell parancsokat tartalmaz.
  • Az első sor a #! jellel kezdődik, és az értelmezőt nevezi meg.
  • A fájlt a chmod +x paranccsal teheted futtathatóvá.
  • A változók, a feltételek és a ciklusok teszik hasznossá.

Ha még bizonytalan vagy a terminálban, olvasd el előbb ezt: A legfontosabb Linux parancsok. A példákat Bash 5.2 alatt ki is próbáltuk. Minden példa a bash script írása kezdőknek szóló alapokra épül, és bármelyik Linux disztribúción működik.

 

Hol kezdődik a bash script írása kezdőknek?

A bash script egy szöveges fájl, amely shell parancsokat tartalmaz, és a Bash sorban lefuttatja őket. A GNU Bash kézikönyv is így definiálja a szkriptet. Olyan feladatokra jó, amelyeket gyakran ismételsz, például mentésre vagy fájlok rendezésére. Egyszer megírod, utána egyetlen paranccsal indítod.

A szkript első sora a #! kezdetű sor, amely megadja az értelmezőt. A szokásos forma a #!/bin/bash vagy a #!/usr/bin/env bash. A második forma a futtatási útvonalból keresi meg a Bash programot. Az alábbi táblázat a szkript fő elemeit foglalja össze.

Utolsó frissítés: 2026-11-05
Elem Példa Szerepe
Shebang sor #!/usr/bin/env bash Megadja az értelmezőt
Parancs echo "Szia" Kiír egy szöveget
Változó nev="Márkó" Értéket tárol
Paraméter $1 Az első átadott érték
Feltétel if [ -f "$1" ] Elágazást hoz létre

 

Hogyan készítsd el az első bash scriptet?

Az első szkript elkészítése négy lépés: fájl létrehozása, tartalom megírása, futtathatóvá tétel és indítás. Nyiss egy szövegszerkesztőt, például a nanót, és írd be a lenti sorokat. A fájlnak adj .sh végződést, bár a Linuxnak ez nem kötelező. A végződés csak a rendet segíti.

#!/usr/bin/env bash
echo "Helló, világ!"

Mentsd a fájlt elso.sh néven. A kézikönyv szerint a futtatási jogot a chmod paranccsal adhatod meg. Ezután a ./ előtaggal indíthatod el a szkriptet az aktuális mappából.

chmod +x elso.sh
./elso.sh

A kimenet a „Helló, világ!” szöveg lesz. Ha a ./ előtagot elhagyod, a shell a rendszer keresési útvonalában próbálja megtalálni a fájlt. Ott pedig nem fogja, ezért hibát kapsz. Futtathatóvá tétel nélkül is elindíthatod a szkriptet a bash elso.sh paranccsal.

Hiba esetén először a gépelést ellenőrizd. A leggyakoribb ok a hiányzó futtatási jog vagy az elírt fájlnév. Ha a shell azt írja, hogy a fájl nem található, a parancs elírt vagy rossz mappából indult. A bash script írása kezdőknek gyakran hibákkal indul, de a pontos üzenet megmutatja a hiba okát.

 

Hogyan tárolj értékeket és olvass paramétereket?

A változó egy névvel ellátott tároló, amelybe szöveget vagy számot teszel, és később visszaolvasod. Értéket az egyenlőségjellel adsz neki, szóköz nélkül, az olvasáshoz pedig dollárjelet írsz elé. A szkriptnek parancssorból is adhatsz értéket, amit a $1 jelölés ér el. Így ugyanaz a szkript többféle bemenettel is működik.

#!/usr/bin/env bash
nev="${1:-ismeretlen}"
echo "Szia, $nev!"

Ha paraméter nélkül indítod, a kimenet „Szia, ismeretlen!” lesz. A ./udvozles.sh Márkó hívás már a nevedet köszönti. A ${1:-ismeretlen} forma alapértéket ad arra az esetre, ha nincs paraméter. A dollárjeles változókat mindig tedd idézőjelbe.

Az idézőjel azért fontos, mert a szóközt tartalmazó vagy üres érték idézőjel nélkül szétesik. A fájlnevekre is ez igaz, például a feltételekben. Ezért a példáink is mindig idézőjelet használnak.

A részletesebb leírást a Bash változók, ciklusok és feltételek cikkben találod. Kezdőként elég a névvel ellátott változó és az első paraméter. Ha több értéket is átadsz, a következők a $2 és a $3 lesznek.

 

Hogyan írj feltételt és ciklust bash scriptben?

A feltétel azt dönti el, hogy egy parancs lefusson-e, a ciklus pedig ismétel. A feltételhez az if, a then, az else és a fi kulcsszavakat használod. A következő szkript azt ellenőrzi, hogy létezik-e a megadott fájl. A -f kapcsoló a hagyományos fájlra kérdez rá.

#!/usr/bin/env bash
if [ -f "$1" ]; then
  echo "A fájl létezik: $1"
else
  echo "A fájl nem létezik: $1"
fi

A szögletes zárójelek belsejében szóközöknek kell lenniük, különben a shell hibát jelez. A második ágban a szkript a nem létező fájlról is értesít. Ez a minta a legtöbb ellenőrzés alapja. A -d kapcsoló a mappák, a -f a fájlok létezését vizsgálja.

A ciklus ugyanezt az egyszerűséget követi. A for ciklus végigmegy a felsorolt elemeken, és mindegyikre lefuttatja ugyanazt a blokkot. Az alábbi példa egy mappa összes txt fájlját listázza.

for f in *.txt; do
  echo "Találat: $f"
done

A csillag helyettesítő karakter, ezért a ciklus minden txt végű fájlra lefut. Ha nincs ilyen fájl, a shell magát a mintát adja át, így erre is gondolj. A szövegfeldolgozáshoz később jól jön a Hogyan használjuk a grep parancsot cikk.

 

Hogyan írj egy hasznos mentő szkriptet?

A mentő szkript egy mappa másolatát készíti el egy dátummal ellátott célmappába. A bash script írása kezdőknek ezzel a feladattal a leghatékonyabb, mert minden eddigi elemet felhasznál. A szkript változókat, parancshelyettesítést és mappa-létrehozást is tartalmaz. A kimenete a dátum szerint rendezett mentések sorozata, így később könnyen megtalálod a kívánt állapotot.

#!/usr/bin/env bash
forras="$HOME/dokumentumok"
cel="$HOME/mentesek/$(date +%F)"
mkdir -p "$cel"
cp -r "$forras" "$cel"
echo "Kész: $cel"

A $(date +%F) rész az aktuális dátumot adja ÉÉÉÉ-HH-NN formában. A mkdir -p létrehozza a célmappát, és nem szól, ha az már létezik. A cp -r a mappát a tartalmával együtt másolja. Az első futtatás előtt győződj meg arról, hogy a forrásmappa tényleg létezik.

A # jellel kezdődő sorok megjegyzések, a Bash nem hajtja végre őket. A shebang sor ez alól kivétel, mert az operációs rendszer értelmezi. Ha később bonyolultabb szkriptet írsz, a megjegyzések segítenek visszaolvasni a lényeget. Egy-egy rövid magyarázat a szkript tetején később sokat spórol.

A szkriptet időzítheted is, így magától fut. Ebben a cron időzített feladat Linuxon cikk segít. Ha a verziókat is követni szeretnéd, nézd meg a Git alapjai a terminálban cikket.

 

Mire figyelj a szkript első futtatása előtt?

A szkript ugyanazokkal a jogokkal fut, mint te, ezért egy hiba valódi kárt okozhat. Ezért az éles adatokon dolgozó parancsokat előbb tesztmappán próbáld ki. Töröl vagy ír felül parancsot csak akkor tegyél a szkriptbe, ha pontosan érted a hatását. A hibás útvonal például hibaüzenetet ad, de a szkript fut tovább.

A szkript végén a $? változó mutatja az utolsó parancs kilépési kódját. A GNU Bash kézikönyv szerint a nulla jelzi a sikert, a nullától eltérő érték pedig a hibát. A 127-es kód például azt jelenti, hogy a parancs nem található. A 126-os kód azt, hogy megtalálta a shell, de nem futtatható.

Ezt a kódot feltételben is felhasználhatod, így a szkript maga dönt a folytatásról. Egy mentő szkriptnél például csak sikeres másolás után érdemes a régi mentést törölni. Ha a kód nem nulla, a szkript írjon hibaüzenetet, és álljon le.

Az értesítések beépítéséről a szkript-értesítés e-mailben és webhookkal cikk szól. Ha a mentés sikertelen, így azonnal értesülsz róla. A mindennapi gyorsítást a Linux terminál produktivitási tippek adják. Ezekkel a begépelt parancsok száma is csökken.

Ha a bash script írása kezdőknek már megy, ez a következő lépés:

 

Gyakori kérdések a bash script írásáról

Mi a bash script, és miben más, mint egy parancs?

A bash script egy szöveges fájl, amely több shell parancsot tartalmaz. Egy parancsot egyszer begépelsz, a szkriptet viszont bármikor újra futtathatod. A GNU Bash kézikönyv szerint a szkript shell parancsokat tartalmazó szöveges fájl.

 

Mit jelent a #! sor a szkript elején?

Ez a shebang sor, amely megadja, melyik értelmezővel fusson a szkript. A kézikönyv példája a #! /bin/bash, de a #!/usr/bin/env bash forma is elterjedt. Az első sorban kell állnia.

 

Miért kell a chmod +x a szkripthez?

A chmod +x futtatási jogot ad a fájlnak, így a ./ előtaggal közvetlenül indíthatod. Nélküle a szkriptet a bash paranccsal is elindíthatod. A jogot elég egyszer beállítani.

 

Melyik szövegszerkesztővel írjak bash szkriptet?

Bármelyik egyszerű szövegszerkesztő jó, például a nano vagy a vim. A lényeg, hogy sima szöveges fájlt mentsen. A grafikus szerkesztők is megfelelnek, ha nem tesznek formázást a szövegbe.

 

Mire jó a $1 a bash scriptben?

A $1 a szkriptnek átadott első paramétert jelenti. A második paraméter a $2, és így tovább. Így a szkript többféle bemenettel is működik.

 

Mit jelent a $? a szkriptben?

A $? az utoljára lefutott parancs kilépési kódját tartalmazza. A nulla értéke sikert jelent, bármi más hibát. A szkriptek ezzel döntenek a folytatásról.

 

Hogyan teszteljem biztonságosan a szkriptemet?

Futtasd tesztmappán, és csak olvasó parancsokkal próbálkozz először. A törlő vagy felülíró parancsokat előbb írasd ki az echo paranccsal. Éles adatokon csak a tesztelés után használd.

Szerző: a Linuxinfok szerkesztősége. Utolsó frissítés: 2026-11-05. A parancsok a hivatalos dokumentáció alapján készültek, futtatás előtt ellenőrizd az aktuális oldalt.

 

Források és referenciák