Hoe de Bash-case-verklaring te gebruiken?

How Use Bash Case Statement



Bash case-statements zijn vergelijkbaar met if-else-statements, maar zijn eenvoudiger en eenvoudiger. Het helpt om één variabele te vergelijken met meerdere waarden. Het wordt gebruikt wanneer u de IF-else-instructies nodig hebt met een aantal Elif-instructies ... Het lijkt veel op de switch-instructie in C, maar de bash-case-instructie gaat niet verder zodra het patroon overeenkomt

In dit artikel zullen we uitleggen hoe je de Bash case-statement met voorbeeld in Linux OS kunt gebruiken.







Syntaxis van bash case-statement

Hier is de syntaxis voor de bash case-instructie:



Syntaxis:



geval $ variabele in
patroon-1)
commando's
;;
patroon-2)
commando's
;;
patroon-3)
commando's
;;
patroon-N)
commando's
;;
*)
commando's
;;
esac
  • De case-statement begint met case en eindigt met esac
  • De ) wordt gebruikt om een ​​patroon te beëindigen. Om meerdere patronen te scheiden, | operator wordt gebruikt zoals hieronder weergegeven:
geval $ variabele in
patroon-1|patroon-2)
commando's
....
....
;;
patroon-3|patroon-4)
commando's
....
....
;;
  • Patroon met opdrachten staat bekend als clausule en elke clausule eindigt met (;;).
  • Het asterisk-symbool* kan worden gebruikt om het standaardgeval te definiëren.
  • Bash case-statement komt eerst overeen met de invoer $ variabele met de verschillende patronen. Als een patroon overeenkomt, wordt de bijbehorende reeks opdrachten tot aan de dubbele puntkomma's (;;) uitgevoerd.

Voorbeeld 1:

Het volgende voorbeeld gaat over het bash-kasoverzicht waarin de gebruiker wordt gevraagd de naam van de maand in te voeren. Als deze invoer overeenkomt met de gedefinieerde patronen in het script, wordt het bijbehorende echo-commando uitgevoerd. Het echo-commando geeft informatie weer over het internationale evenement van die specifieke maand.





Om dit script te gebruiken, maakt u een eenvoudig tekstbestand; noem het met de .sh bestandsextensie. Voeg het volgende script erin toe en sla het op. Wijs dit bestand vervolgens toe om machtigingen uit te voeren door de volgende opdracht in Terminal uit te voeren:

$sudo chmod 777bestandsnaam.sh

Om dit bash-bestand uit te voeren, voert u eenvoudig ./ uit, gevolgd door de naam van het bash-bestand als volgt:



$./bestandsnaam.sh

Wanneer u het script uitvoert, wordt u gevraagd om de naam van de maand als invoer in te voeren. Als de naam van de maand overeenkomt, wordt de overeenkomstige gebeurtenis in die specifieke maand weergegeven, anders wordt er geen overeenkomende informatie gevonden weergegeven.

Merk op dat shopt -s nocasematch wordt gebruikt om het patroon te matchen, ongeacht het geval.

shopt -snocasematch

gooide uit 'Voer naam van de maand in'
lezenmaand
geval $maand in
Januari)
gooide uit ' 24 januari internationale dag van het onderwijs.'
;;
februari)
gooide uit ' 20 februari Werelddag van Sociale Rechtvaardigheid .'
;;
maart)
gooide uit '8 maart Internationale vrouwendag.'
;;
april)
gooide uit '7 april Wereldgezondheidsdag'
;;
Kunnen)
gooide uit 'De internationale dag van het gezin op 15 mei'
;;
juni-)
gooide uit '20 juni Wereldvluchtelingendag'
;;
juli-)
gooide uit '11 juli Wereldbevolkingsdag'
;;
*)
gooide uit 'Geen overeenkomende informatie gevonden'
;;
esac

Voorbeeld 2:

Het volgende voorbeeld gaat over het bash-kasoverzicht waarin een gebruiker wordt gevraagd de landnaam in te voeren. Als deze invoer overeenkomt met de gedefinieerde patronen in het script, wordt het bijbehorende echo-commando uitgevoerd. Het echo-commando geeft informatie weer over de hoofdstad van dat specifieke land.

Om dit script te gebruiken, volgt u dezelfde methode als beschreven in het bovenstaande voorbeeld. Als u klaar bent, voert u het script uit en wordt u gevraagd om de naam van het land als invoer in te voeren. Als de landnaam overeenkomt met de vooraf gedefinieerde landnamen, wordt de naam van de hoofdstad van dat land weergegeven, anders wordt het bericht Informatie niet beschikbaar weergegeven.

#!/bin/bash
shopt -snocasematch
gooide uit -N 'Vul de naam van een land in: '
lezenland

gooide uit -N 'De hoofdstad van$landis '
geval $land in
Pakistan)
gooide uit -N 'Islamabad'
;;
Fiji)
gooide uit -N 'Droog'
;;
VK| 'Verenigd Koninkrijk')
gooide uit -N 'Londen'
;;
kalkoen)
gooide uit -N 'Ankara'
;;
TOEPASSINGEN)
gooide uit -N 'Washington DC'
;;
*)
gooide uit -N 'Informatie niet beschikbaar'
;;
esac
gooide uit ''

Bash case-statements maken het bash-script gemakkelijker te lezen en te begrijpen. In dit artikel hebben we besproken hoe u bash-case-statements schrijft en gebruikt. Nu kunt u eenvoudig en eenvoudig een soort if-else-statement op meerdere niveaus schrijven door gebruik te maken van case-statements.