Hur man använder Bash -fallet

How Use Bash Case Statement



Bash case-påståenden liknar uttalanden if-else men är enklare och enklare. Det hjälper att matcha en variabel mot flera värden. Den används när du kräver IF-else-uttalandena med ett antal Elif-satser ... Det är ganska likt att byta uttalande i C men bash case-uttalandet går inte framåt när mönstret matchas

I den här artikeln kommer vi att förklara hur du använder Bash -fallet med exempel i Linux OS.







Syntax för bash case statement

Här är syntaxen för bash case statement:



Syntax:



fall $ variabel i
mönster-1)
kommandon
;;
mönster-2)
kommandon
;;
mönster-3)
kommandon
;;
mönster-N)
kommandon
;;
*)
kommandon
;;
esac
  • Ärendeförklaringen börjar med ärende och slutar med esac
  • ) Används för att avsluta ett mönster. För att skilja flera mönster, | operatören används enligt nedan:
fall $ variabel i
mönster-1|mönster-2)
kommandon
....
....
;;
mönster-3|mönster-4)
kommandon
....
....
;;
  • Mönster med kommandon kallas klausul och varje klausul slutar med (;;).
  • Asterisk -symbolen* kan användas för att definiera standardfall.
  • Bash case statement matchar först ingången $ variabel med de olika mönstren. Om ett mönster matchas, kommer motsvarande uppsättning kommandon upp till dubbla semikolon (;;) att köras.

Exempel 1:

Följande exempel handlar om bash -kontoutdraget där det ber användaren att ange månadsnamnet. Om denna ingång matchar de definierade mönstren i skriptet kommer motsvarande ekokommando att köras. Echo -kommandot visar information om den internationella händelsen för just den månaden.





För att använda detta skript, skapa en enkel textfil; namnge det med .sh filändelse. Lägg till följande skript i det och spara det. Tilldela sedan den här filen för att köra behörigheter genom att köra följande kommando i Terminal:

$sudo chmod 777filnamn.sh

För att köra denna bash -fil, kör bara ./ följt av bash -filnamnet enligt följande:



$./filnamn.sh

När du kör skriptet kommer du att bli ombedd att ange månadens namn som inmatning. Om månadsnamnet matchas kommer det att visa motsvarande händelse under den specifika månaden, annars visas ingen matchande information.

Observera att shopt -s nocasematch används för att matcha mönster oavsett fall.

butiker -snocasematch

kastade ut 'Ange månadens namn'
läsamånad
fall $ månad i
Januari)
kastade ut 'Internationella utbildningsdagen den 24 januari.'
;;
Februari)
kastade ut '20 februari Världsdagen för social rättvisa.'
;;
Mars)
kastade ut '8 mars internationella kvinnodagen.'
;;
April)
kastade ut '7 april Världshälsodagen'
;;
Maj)
kastade ut 'Internationella familjedagen den 15 maj'
;;
Juni)
kastade ut '20 juni världens flyktingdag'
;;
Juli)
kastade ut 'Världsbefolkningsdagen den 11 juli'
;;
*)
kastade ut 'Ingen matchande information hittades'
;;
esac

Exempel 2:

Följande exempel handlar om bash -kontoutdraget där en användare ombeds ange landets namn. Om denna ingång matchar de definierade mönstren i skriptet kommer motsvarande ekokommando att köras. Echo -kommandot visar information om huvudstaden i just det landet.

För att använda detta skript, följ samma metod som beskrivs i exemplet ovan. När du är klar, kör skriptet och du kommer att bli ombedd att ange namnet på landet som inmatning. Om landets namn matchas med de fördefinierade landnamnen kommer det att visa landets huvudnamn, annars visas meddelandet Information inte tillgänglig.

#!/bin/bash
butiker -snocasematch
kastade ut -n 'Ange namnet på ett land:'
läsaLand

kastade ut -n 'Huvudstaden av$ landär '
fall $ land i
Pakistan)
kastade ut -n 'Islamabad'
;;
Fiji)
kastade ut -n 'Torr'
;;
Storbritannien| 'Storbritannien')
kastade ut -n 'London'
;;
Kalkon)
kastade ut -n 'Ankara'
;;
ANVÄNDNINGAR)
kastade ut -n 'Washington DC'
;;
*)
kastade ut -n 'Informationen är inte tillgänglig'
;;
esac
kastade ut ''

Bash case-uttalanden gör bash-script lättare att läsa och förstå. I den här artikeln har vi täckt hur man skriver och använder bash case -uttalanden. Nu kan du skriva ett slags flernivå om-annat-uttalande enkelt och enkelt med hjälp av fallbesked.