logo

Bash Case

Ebben a témában megvitatjuk az esetleírások alapjait és azok használatát Bash-szkriptekben.

A Bash eset utasítás az IF-THEN-ELSE legegyszerűbb formája sok ELIF elemmel. A case utasítás használatával a bash szkriptünk olvashatóbbá és könnyebben karbantarthatóvá válik. Ezeket általában arra használják, hogy egyszerűsítsék a több különböző választási lehetőséget tartalmazó összetett feltételeket.

A Bash case utasítás hasonló logikát követ, mint a Javascript vagy a C switch utasítás. Van egy kis eltérés, az alábbiak szerint:

  • A Bash eset utasítás egyszer vesz fel egy értéket, és többször teszteli azt. Abbahagyja a minta keresését, miután megtalálta és végrehajtotta a hozzá kapcsolt utasítást, ami a C switch utasítás esetében szinte ellentétes.

Esetkimutatás szintaxis

A bash kis- és nagybetűk utasításának szintaxisa az alábbiakban látható:

 case expression in pattern_1) statements ;; pattern_2) statements ;; pattern_3|pattern_4|pattern_5) statements ;; pattern-n) statements ;; *) statements ;; esac 

Van néhány kulcsfontosságú pont a bash kisbetűs kijelentéseknek:

  • A bash-ban minden eset-utasítás a „case” kulcsszóval kezdődik, ezt követi a case kifejezés és az „in” kulcsszó. Az esetleírást az „esac” kulcsszó zárja.
  • Több mintát is alkalmazhatunk |-vel elválasztva operátor. A ) operátor egy mintalista befejezését jelzi.
  • Az utasításokat tartalmazó mintát záradéknak nevezzük, és dupla pontosvesszővel (;;) kell zárni.
  • A csillag szimbólum (*) végső mintaként szolgál az alapértelmezett kis- és nagybetűk meghatározásához. Ez alapértelmezett esetként használatos, ha utolsó esetként használják.

Hogyan működik

Először is, a case utasítás kibővíti a kifejezést, és megpróbál illeszkedni az egyes mintákkal. Ha egyezést talál, az összes csatolt utasítás a kettős pontosvesszőig (;;) fut le. Az első egyezés után az ügy az utoljára végrehajtott utasítás kilépési állapotával fejeződik be.

Ha nincs egyező minta, akkor az eset kilépési állapota nulla. Ellenkező esetben a visszatérési állapot a végrehajtott utasítások kilépési állapota.

Ha az alapértelmezett csillagmintát használja, akkor a rendszer végrehajtja, ha nincs egyező minta.

Próbáljuk megérteni ezt a mechanizmust néhány példa segítségével:

1. példa

Ebben a példában egy egyszerű forgatókönyvet definiáltunk az eset utasítás használatának bemutatására.

Bash Script

 #!/bin/bash echo 'Do you know Java Programming?' read -p 'Yes/No? :' Answer case $Answer in Yes|yes|y|Y) echo 'That's amazing.' echo ;; No|no|N|n) echo 'It's easy. Let's start learning from javatpoint.' ;; esac 

Kimenet

Bash Case

2. példa

Ebben a példában egy kombinált forgatókönyvet definiáltunk, ahol van egy alapértelmezett eset is, amikor nem található korábbi egyező eset.

jsp javatpoint

Bash Script

 #!/bin/bash echo 'Which Operating System are you using?' echo 'Windows, Android, Chrome, Linux, Others?' read -p 'Type your OS Name:' OS case $OS in Windows|windows) echo 'That's common. You should try something new.' echo ;; Android|android) echo 'This is my favorite. It has lots of applications.' echo ;; Chrome|chrome) echo 'Cool!!! It's for pro users. Amazing Choice.' echo ;; Linux|linux) echo 'You might be serious about security!!' echo ;; *) echo 'Sounds interesting. I will try that.' echo ;; esac 

Kimenet

A szkriptet három különböző bemenettel futtattuk, nézze meg az alábbi kimenetet:

Bash Case

Következtetés

Ebben a témában a példákkal megismerkedtünk a Bash Case utasítás szintaxisával és használatával.