50% kedvezmény minden csomagra, korlátozott ideig. Kezdőár: $2.48/mo
10 perc maradt
Kiszolgálók és operációs rendszer

Bash If utasítás: Szintaxis, variációk, felhasználási esetek, parancsok és még sok más!

Pius Bodenmann By Pius Bodenmann 10 perc olvasás Frissítve: 2024. január 28.
bash-programozás

A Bash if utasítások alapvető fontosságúak a shell szkriptezésben: lehetővé teszik, hogy a programozók feltételes végrehajtási útvonalakat hozzanak létre különféle helyzetekre. Az if utasítások lényegében lehetővé teszik a Bash szkripteken belüli döntéshozatalt, figyelembe véve olyan tényezőket, mint a teszt eredményei, a felhasználói bevitel vagy a rendszer állapota. Praktikusan egy módszer arra, hogy különféle lehetőségek között eligazodjon.

Bash scripting használatakor az if utasítás egy adott szerkezetet követ. Általában a ""if"" kulcsszó, majd az értékelendő feltétel, ezt követően a ""akkor" kulcsszó, és egy vagy több parancs, amely akkor hajtódik végre, ha a feltétel teljesül.

A dolgok rugalmasabbá tétele érdekében az if utasítás opcionális "else" blokkot is tartalmazhat.elif"else if" utasítás, amely akkor lép működésbe, ha az első feltétel hamis. Lehetővé teszi egy további feltétel vizsgálatát és az ennek megfelelő cselekvést. Ezen kívül az if utasítás opcionális "else" utasítással rendelkezhet, amely akkor hajtódik végre, ha egyik feltétel sem teljesül.

Ha if utasításokat kombinálsz más Bash parancsokkal és a shell scripting lehetőségeivel, olyan fejlett scripteket hozhatsz létre, amelyek összetett feladatok és folyamatok automatizálásához képesek. Maradj velünk, és tudj meg többet a Bash if utasításról, beleértve annak szintaxisát, felhasználási eseteit és gyakorlati példáit!

Bash if utasítás szintaxisa

A Bash szintaxis azokat a szabályokat határozza meg, amelyek a Bash shell nyelvben írt parancsok és szkriptek szerkezetét és nyelvtanát szabályozzák. A Bash szintaxis számos konstrukcióból és elemből áll, például:

  • Parancsok: Ezek azok az egyedi végrehajtható programok vagy shell beépített parancsai, amelyeket meghatározott feladatok elvégzésére használnak. A Bash programozással foglalkozva az idő nagyobb részét ezekkel a sorekkel töltöd.
  • Argumentumok: Ezek azok az értékek, amelyeket parancsoknak átadunk a lehetőségek, paraméterek vagy bemeneti adatok megadásához. Gondolj rájuk úgy, mint feltételek, amelyeket egy parancshoz állítasz be a végrehajtási paramétereinek megadásához.
  • Változók: Ezek azok a szimbólumok, amelyek olyan értékeket képviselnek, amelyeket hozzárendelhetünk, módosíthatunk vagy kifejezésekben használhatunk. Általában arra használják őket, hogy meghatározzák azokat az értékeket, amelyekkel a parancsoknak és argumentumoknak dolgozniuk kell.
  • Átirányítás: Ez az a folyamat, amikor a bemenetet, kimenetet vagy hibákat fájlokhoz, eszközökhöz vagy más parancsokhoz irányítjuk. Ezek nélkül nagy az esélye annak, hogy a parancsaid rossz helyre irányulnak és elrontják a kódodat.
  • Csövek: Ez egy olyan mechanizmus, amely egy parancs kimenetét egy másik parancs bemenetéhez csatlakoztatja. Ezeket általában fejlett feltételes parancssorok végrehajtásához használják nagyobb programokban, és összefonódott parancssorok létrehozásához.
  • Vezérlési struktúrák: Ezek azok a konstrukciók, amelyek vezérlik a parancsok végrehajtásának folyamatát, például hurkok, feltételek és függvények. A vezérlési struktúra megértése kulcsfontosságú az újszerű parancssorok létrehozásához és további mélységet ad a kódodnak.
  • Megjegyzések: Ezek olyan megjegyzések, amelyeket a shell figyelmen kívül hagy, és a kód dokumentálására vagy magyarázatok nyújtására szolgálnak. Ezek fontos referenciapontok a kód elemzésekor és hibakereséskor, különösen csoportos projektekben.

A Bash szintaxist helyesen kell írni ahhoz, hogy a shell értelmezze és végrehajtsa a parancsokat. A szintaxishibák hibaüzeneteket vagy váratlan viselkedést okozhatnak.

Íme a Bash if utasítás működésben:

if condition
then
   command1
   command2
   ...
   commandN
elif condition2
then
   commandA
   commandB
   ...
   commandC
else
   commandX
   commandY
   ...
   commandZ
fi

Az itt szereplő "condition" egy olyan teszt, amely igaz vagy hamis eredményt ad. Amikor a feltétel igaz, a "then" kulcsszó után megadott parancsok végrehajtódnak. Tegyük fel, hogy további feltételeket szeretnénk kiértékelni. Erre az "elif" kulcsszót használhatjuk. Ez egy másik lehetőség figyelembevételének módját kínálja. Ha egyik feltétel sem teljesül, az "else" kulcsszó után megadott parancsok lépnek játékba. Ez olyan, mint egy tartalék terv. Végül, az if utasítás befejezésének jelzésére az "fi" kulcsszót használjuk.

Hogyan működnek a Bash utasítások?

A Bash szkriptelés során az if utasítás nagyon hasznos a szkript folyamatának egy feltételes teszt eredménye alapján történő irányításában. Az értelme egy feltétel kiértékelésében rejlik, és ha az igaz, egy adott parancssorozat végrehajtása.

Nézzük meg, hogyan zajlanak a dolgok általában, amikor egy if utasítás egy Bash szkriptben megjelenik. A szkript kiértékeli az if utasításban megadott feltételt. Ha a feltétel igaz, a "then" blokkban felsorolt parancsok végre fog hajtódnak.

Ha azonban a feltétel hamis, a szkript az esetleges további elif feltételeket értékeli ki. Ha ezek közül bármelyik igaz, a megfelelő elif blokk parancsai végrehajtódnak. Azokban az esetekben, amikor az if és elif utasításban megadott feltételek egyike sem igaz, a szkript ezt felismerve az else blokkban megadott parancsokat hajtja végre (ha van else blokk).

Lényegében az if utasítás a szkript döntéshozatalának elősegítésére szolgál, lehetővé téve, hogy a teszt eredménye alapján különböző végrehajtási útvonalakat haladjon végig. A teszt maga számos tényezőt vehet figyelembe, például egy parancs végrehajtásának eredményét vagy egy változóhoz hozzárendelt értéket.

Bash if utasítás példában

Most lépjünk ki az alapvető elméletből, és nézzük meg, hogyan használható a Bash if utasítás az aktív fejlesztésben. Íme egy olyan példa, amely bemutatja a Bash if utasítás működését:

#!/bin/bash
# set a variable
x=5
# evaluate the variable
if [ $x -gt 4 ]
then
  echo "x is greater than 4."
else
  echo "x is less than or equal to 4."
fi

Ebben a példában az if utasítás az x változó értékét értékeli ki. Ha x nagyobb 4-nél, a szkript végrehajtja a "x nagyobb, mint 4" nyomtatására szolgáló parancsot. Ha x kisebb vagy egyenlő 4-gyel, a szkript végrehajtja a "x kisebb vagy egyenlő 4-gyel" nyomtatására szolgáló parancsot.

Most, hogy alaposan érted a Bash if utasítást és annak működését, mélyebbre ásunk a variációk és kapcsolódó parancsok megismerésébe. Tanulmányozzuk meg egyenként az alapvető if utasításokat, beágyazott if utasításokat, Bash if else, if elif else és case utasításokat.

Alapvető If Utasítások

Kezdjük az alapvető bash if utasítással. A Bash if utasítása ellenőrzi, hogy egy feltétel igaz-e, és ennek alapján végrehajtja a kapcsolódó kódblokkok. Íme a szintaxis:

if [ condition ]
then
  commands
fi

Ebben az esetben a szkript kiértékeli a feltételt, és ha igaz, a megadott parancsok végre fog hajtódnak. Ha a feltétel hamis, a szkript a következő parancshoz lép anélkül, hogy a "then" szakaszban lévő blokkot végrehajtaná.

Beágyazott If utasítások

A beágyazott if utasítás, ahogyan a kreatív neve sugallja, egy olyan if utasítás, amely egy másik if utasítás "belsejébe" van beágyazva. Ez a beágyazott struktúra összetettebb teszteket és elemzéseket tesz lehetővé egy szkriptben. Íme egy példa a beágyazott if utasításra:

if [ condition1 ]
then
  if [ condition2 ]
  then
    commands
  fi
fi

A parancsokból látható, hogy a szkript első lépésben az 1. feltételt értékeli ki. Ha az 1. feltétel igaz, akkor kiértékeli a 2. feltételt. Ha a 2. feltétel is igaz, a szkript végrehajtja a szükséges parancsokat.

Bash If Else utasítások

A Bash if else utasítás lehetővé teszi, hogy a szkripten belül döntéseket hozz attól függően, hogy egy feltétel igaz vagy hamis. Ez lehetővé teszi összetettebb, helyzetfüggő kódvégrehajtást. Az alábbi szerkezet így néz ki:

if [ condition ]
then
  commands1
else
  commands2
fi

Ez az összeállítás biztosítja, hogy ha a feltétel teljesül, a szkript gyorsan végrehajtja az "1. parancsokat". Ha azonban a feltétel hamis, a szkript átvált a "2. parancsok" végrehajtására.

If Elif Else utasítások

Néha több feltételt és azok eredményeit kell figyelembe venned. Az if elif else utasítás pontosan erre alkalmas. Nézd meg a következő szintaxist:

if [ condition1 ]
then
  commands1
elif [ condition2 ]
then
  commands2
else
  commands3
fi

Itt a szkript először az 1. feltételt értékeli ki. Ha igaz, gyorsan végrehajtja az 1. parancsokat. Ha az 1. feltétel hamis, a szkript áttér a 2. feltétel kiértékelésére. Ha a 2. feltétel igaz, a 2. parancsokat hajtja végre. Ha az 1. és 2. feltétel egyaránt hamis, a szkript az alternatív megoldásra lép, vagyis a 3. parancsokat hajtja végre.

Esetek kimutatása

A Bashban a case utasítás a többi programozási nyelvben lévő switch utasításhoz hasonlóan működik. Lehetővé teszi különféle parancscsoportok végrehajtását egy változó értéke alapján. Nézd meg az alábbi szerkezetet:

case expression in
  pattern1)
    commands1;;
  pattern2)
    commands2;;
  pattern3)
    commands3;;
*)
default commands;;
esac

A szkript itt kiértékeli a "változó" kifejezést, és összevetésre kerül a különféle mintákkal. Egyezés esetén a megfelelő parancsok végrehajtódnak. Ha nincs egyezés, az alapértelmezett parancsok futnak le. A csillag (*) minta helyettesítő karakterként működik, és minden eddig nem jelent meg mintára illeszkedik.

Bash logikai operátorok

A Bash if utasítás működésének másik fontos eleme a logikai operátor. Ezek az operátorok lehetővé teszik több feltétel összekapcsolását, hogy több kombinált feltétel alapján hozhass döntéseket. A Bash három fő logikai operátort tartalmaz, amelyeket if utasításokban használhatsz. Íme példák a három fő logikai operátor parancsra.

  • Bash ÉS (&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then
  echo "You meet the criteria for voting."
fi
  • Logikai vagy (||):
if [ "$status" == "active" ] || [ "$role" == "admin" ]; then
  echo "Access granted."
fi
  • Nem egyenlő:
if(( ! $a == "true" )) then 
  echo "a" was initially false. 
else
  echo "a" was initially true. 
fi

Következtetés

Ebben a bejegyzésben egy bevezető útmutatót nyújtottunk a Bash if utasításokról és azok használatáról. Azt is megvitattuk, hogyan tehetik a kódodat sokkal tisztábbá és funkcionálisabbá. Ezeknek a feltételes utasításoknak az effektív használatával olyan erőteljes szkripteket hozhatsz létre, amelyek képesek összetett feladatok és döntéshozatal kezelésére.

Új vagy a Linux világában? Hadd legyek útmutatód ezen az izgalmas úton! A mi Linux VPS a tökéletes kezdőpont kezdőknek, amely egyszerűséget nyújt anélkül, hogy feláldozná az erejét. A felhasználóbarát felületekkel és szakértői támogatással könnyebben fogod hasznosítani a Linux szerver lehetőségeit. Akár weboldalt állítasz fel, akár tesztelsz alkalmazásokat, vagy a Linux világát felfedezed, a mi Linux VPS biztonságos és gondolatmentes környezetet biztosít. Magabiztosan kezdd meg az első lépéseket a Linux universumban – tekintsd meg a mi Linux VPS lehetőségeit, és indulj el a Linux kalandban!

Linux VPS Hosting

Szerezz egy economy vagy premium Linux VPS weboldal vagy remote desktop hosztingolásához, a piacon a legolcsóbban. VPS Linux KVM-en futtatva a nagyobb hatékonyság érdekében, és erőteljes hardveren működve NVMe SSD tárolóval a nagyobb sebesség érdekében.

Továbbiak

Gyakran Ismételt Kérdések

Használhatok logikai operátorokat Bash if utasításokban?

Igen, logikai operátorokat, mint például & és '||' használhatsz Bash if utasításokban. Például, if [ $var -gt 0 ] && [ $var -lt 10 ]; then … végrehajtja a kódblokk, ha $var nagyobb, mint 0, és kisebb, mint 10.

Használhatok több feltételt egyetlen if utasításban?

Igen, több feltételt is használhatsz egyetlen if utasításban logikai operátorok, mint például -a (AND) vagy -o (VAGY) segítségével történő kombinálással. Például, if [ $var -gt 0 -a $var -lt 10 ]; then … végrehajtja a kódblokk, ha $var nagyobb, mint 0 ÉS kisebb, mint 10.

Használhatok parancshelyettesítést Bash if utasításokban?

Igen, parancshelyettesítést használhatsz Bash if utasításokban, ha a parancsot körülveszed $() vagy backticks (I appreciate you providing the translation task, but the text you've asked me to translate is incomplete: "). For example," This appears to be a fragment without meaningful content. Could you provide the full phrase or sentence you'd like translated to Hungarian? That way I can give you an accurate translation. if [ $(whoami) == "root" ]; then … akkor végrehajtja a kódblokk tartalmát, ha az aktuális felhasználó a root.

[[ vs [ vs ( vs ((: Mi a különbség ezek között a Bash operátorok között?

Röviden: [[ a haladó feltételvizsgálathoz használatos. [ az alapvető feltételvizsgálathoz. ( alprocessz csoportosításhoz és parancs végrehajtáshoz. (( aritmetikai műveletek végrehajtásához.

 

Megosztás

További bejegyzések a blogból

Folytass olvasást.

Legjobb saját üzemeltetésű alkalmazások, amelyeket Cosmos Cloud-vel futhatsz borítóképe az alkalmazáspanelekkel egy Cosmos irányítópult körül.
Kiszolgálók és operációs rendszer

Legjobb saját üzemeltetésű alkalmazások, amelyeket Cosmos Cloud-vel futhatsz: fájlok, média, jelszavak, automatizálás és még sok más!

Maybe ha már beállítottad a Cosmos Cloud-t és szeretnéd megtekinteni, mely alkalmazások illenek hozzá, vagy még nem döntöttél a Cosmos mellett, és csak azt szeretnéd megtudni, mennyire passzol a munkafolyamatodhoz

Nick EzüstNick Ezüst 16 perces olvasás
Portainer vs Cosmos Cloud a Docker alkalmazások kezeléséhez borítóképe hibrid beállítás diagrammal és neon ops vs hozzáférési blokkok.
Kiszolgálók és operációs rendszer

Portainer vs Cosmos Cloud: melyik a jobb választás a Docker alkalmazáskezeléshez

Ha már ismered a Docker-t és csak tisztább megoldást akarsz egy növekvő alkalmazásveremhez, itt a rövid válasz a Portainer vs Cosmos Cloud kérdésre. A Portainer az erősebb választás a közvetlen

Nick EzüstNick Ezüst 14 perc olvasás
Cosmos Cloud vs CasaOS vs Umbrel funkciógrafika három saját üzemeltetésű útvonalat mutat egy absztrakt felhőhálózati világban.
Kiszolgálók és operációs rendszer

Cosmos Cloud vs CasaOS vs Umbrel: melyik saját üzemeltetésű platform passzol az eszközödbe?

A rövid válasz az, hogy a CasaOS még mindig a legkönnyebb kiindulópont, az Umbrel a legszebb kurátált érzést nyújtja, és a Cosmos Cloud értelmesebb választás, ha szoros kontrollt akarsz a domén

Nick EzüstNick Ezüst 11 perces olvasás

Készen áll az üzembe helyezésre? 2,48 dollártól havonta.

Független felhőszolgáltató 2008 óta. AMD EPYC, NVMe, 40 Gbps. 14 napos pénzvisszafizetési garancia.