Ett fall uttalande i bash-skript används när ett beslut måste tas mot flera val. Med andra ord är det användbart när ett uttryck har möjlighet att ha flera värden. Denna metod kan ses som en ersättning för flera om-satser i ett skript. Falluttalanden har en fördel jämfört med if-satser eftersom det förbättrar läsbarheten för vår kod och de är lättare att underhålla. Case uttalanden i ett Bash-skript är ganska lika Case statements i C-språk. Men till skillnad från C, slutar Bash Case-uttalandet att fortsätta sökningen så snart matchningen inträffar. Med enkla ord, de kräver inte någon break-sats som är obligatorisk för att användas i C för att sluta söka efter ett mönster ytterligare.
Den grundläggande syntaxen för en case-sats ges nedan,
Syntax:
case EXPRESSION in Pattern_Case_1) STATEMENTS ;; Pattern_Case_1) STATEMENTS ;; Pattern_Case_N) STATEMENTS ;; *) STATEMENTS ;; esac>
Så här fungerar fallbeskrivningen:
EXPRESSION>är variabeln eller värdet som utvärderas mot olika mönster (fall) för att hitta en matchning.- Fallbeskrivningen börjar med nyckelordet
case>följt avEXPRESSION>ska utvärderas. - Varje fall definieras av a
Pattern_Case>som representerar ett specifikt värde eller mönster som ska jämföras medEXPRESSION>. - Efter varje
Pattern_Case>, finns det uttalanden som ska köras omEXPRESSION>matchar det specifikaPattern_Case>. Dessa uttalanden betecknas medSTATEMENTS>. - De
;;>i slutet av varjeSTATEMENTS>block indikerar slutet på ett fallblock. - De
*)>är ett specialfall som kallas standardfallet. Om inget av de tidigare mönstren matcharEXPRESSION>, denSTATEMENTS>under*)>blocket kommer att utföras. - De
esac>nyckelord markerar slutet på ärendet.
- Om inget mönster matchas är returstatusen noll. I annat fall är returstatus utgångsstatusen för den exekverade kroppen av det matchade mönsterfallet.
- Precis som C tillhandahåller standardnyckelord för standardsats, likaså i Bash case-satsen, kan vi använda asterisksymbolen (*) och definiera ett slutligt mönster för att definiera standardfallet.
Exempel 1: Skriv ut en beskrivning för varje alternativ
I det här exemplet låter ett script användaren välja en avdelning och visar en beskrivning som motsvarar inmatningen med hjälp av ett ekokommando. I det här skriptet har vi tilldelat variabeln DEPARTMENT som Datavetenskap. Således exekveras kroppen av det första mönsterfallet.
Du kan följa instruktionerna nedan:
1. Öppna terminalen (Ctrl + Alt + T) och skapa skriptet:
department.sh>
2. Lägg till dessa påståenden till skriptet:
#!/bin/bash DEPARTMENT='Computer Science' echo -n 'Your DEPARTMENT is ' case $DEPARTMENT in 'Computer Science') echo -n 'Computer Science' ;; 'Electrical and Electronics Engineering' | 'Electrical Engineering') echo -n 'Electrical and Electronics Engineering or Electrical Engineering' ;; 'Information Technology' | 'Electronics and Communication') echo -n 'Information Technology or Electronics and Communication' ;; *) echo -n 'Invalid' ;; esac>
3. Var och en av raderna beskrivs nedan:
- Den första raden i skriptet börjar med shebang (#!).
- Den instruerar operativsystemet att använda en viss tolk för att analysera skriptet.
- Vi har initierat en DEPARTMENT-variabel som Datavetenskap.
- Nu använder vi en fallbeskrivning.
- Varje uttryck har hanterats genom fallbeskrivningen.
- Den sista raden, esac, har använts för att avsluta ärendeförklaringen.
4. Spara skriptet och gör det körbart.
chmod +x department.sh>
5. Kör skriptet.
./department.sh>
Produktion:

Exempel 2: Användning av flera mönsterfall
I varje klausul kan vi använda flera mönsterfall. Om uttrycket matchar med minst ett mönsterfall exekveras kroppen av satsen. I det här skriptet har vi tilldelat variabeln DEPARTMENT som Electronics and Communication. Det tredje mönsterfallet har två värden åtskilda av röroperatorn ( | ). Således exekveras kroppen av det tredje mönsterfallet.
Du kan följa instruktionerna nedan:
1. Öppna terminalen (Ctrl + Alt + T) och skapa skriptet:
department.sh>
2. Lägg till dessa påståenden till skriptet:
#!/bin/bash DEPARTMENT='Electronics and Communication' echo -n 'Your DEPARTMENT is ' case $DEPARTMENT in 'Computer Science') echo -n 'Computer Science' ;; 'Electrical and Electronics Engineering' | 'Electrical Engineering') echo -n 'Electrical and Electronics Engineering or Electrical Engineering' ;; 'Information Technology' | 'Electronics and Communication') echo -n 'Information Technology or Electronics and Communication' ;; *) echo -n 'Invalid' ;; esac>
3. Var och en av raderna har diskuterats nedan:
- Den första raden i skriptet börjar med shebang (#!).
- Den instruerar operativsystemet att använda en viss tolk för att analysera skriptet.
- Vi har initierat en AVDELNING-variabel som Elektronik och Kommunikation.
- Nu använder vi en fallbeskrivning.
- Varje uttryck har hanterats genom fallbeskrivningen.
- Den sista raden, esac, har använts för att avsluta ärendeförklaringen.
4. Spara skriptet och gör det körbart.
chmod +x department.sh>
5. Kör skriptet.
./department.sh>
Produktion:
Exempel 3: för loopar
I det här manuset har vi tilldelat avdelningen tre elever i en klass i en array AVDELNING. Med andra ord, vi kommer att bearbeta mer än ett uttryck som beskrivs i variabeln DEPARTMENT. För att iterera över flera uttryck kan vi använda a för en loop.
Du kan följa instruktionerna nedan:
1. Öppna terminalen (Ctrl + Alt + T) och skapa skriptet:
department.sh>
2. Lägg till dessa påståenden till skriptet:
#!/bin/bash DEPARTMENT=('Electronics and Communication' 'Computer Science' 'Information Technology') for value in '${DEPARTMENT[@]}' do case $value in 'Computer Science') echo -n 'Computer Science ' ;; 'Electrical and Electronics Engineering' | 'Electrical Engineering') echo -n 'Electrical and Electronics Engineering or Electrical Engineering ' ;; 'Information Technology' | 'Electronics and Communication') echo -n 'Information Technology or Electronics and Communication ' ;; *) echo -n 'Invalid ' ;; esac done> 3. Var och en av raderna beskrivs nedan:
- Den första raden i skriptet börjar med shebang (#!).
- Den instruerar operativsystemet att använda en viss tolk för att analysera skriptet.
- Vi har initierat en array DEPARTMENT med tre strängliteraler.
- Nu, med hjälp av en for-loop, itererar vi över arrayen av element.
- Varje uttryck har hanterats genom fallbeskrivningen.
- Den sista raden, esac, har använts för att avsluta ärendeförklaringen.
4. Spara skriptet och gör det körbart.
chmod +x department.sh>
5. Kör skriptet.
./department.sh>
Produktion:

Exempel 4: Fråga användare med Ja eller Nej
Du kan följa instruktionerna nedan:
få arraylängd i c
1. Öppna terminalen (Ctrl + Alt + T) och skapa skriptet:
department.sh>
2. Lägg till dessa påståenden till skriptet:
#!/bin/bash echo -n 'Are you a student? [yes or no]: ' read response case $response in 'Y' | 'y' | 'YES' | 'Yes' | 'yes') echo -n 'Yes, I am a student.' ;; 'N' | 'n' | 'No' | 'NO' | 'no' | 'nO') echo -n 'No, I am not a student.'; ;; *) echo -n 'Invalid input' ;; esac>
3. Var och en av raderna förklaras nedan:
- Den första raden i skriptet börjar med shebang (#!).
- Den instruerar operativsystemet att använda en viss tolk för att analysera skriptet.
- Användaren tillfrågas som Är du student? [Ja eller nej].
- Nu ges ett svar av användaren via tangentbordet.
- Resultatet av svaret har hanterats genom en fallbeskrivning.
- Den sista raden, esac, har använts för att avsluta ärendeförklaringen.
4. Spara skriptet och gör det körbart.
chmod +x department.sh>
5. Kör skriptet med kommandot nedan.
./department.sh>
Produktion:

Exempel 5: Skicka signal till en process
Du kan följa instruktionerna nedan:
1. Öppna terminalen (Ctrl + Alt + T) och skapa skriptet:
signals.sh>
2. Lägg till dessa påståenden till skriptet:
#!/bin/bash if [ $# -lt 2 ] then echo 'Usage :Signalnumber PID' exit fi # Case statement # Signal number (expression) case '' in 1) echo 'Sending SIGHUP signal.....' kill -SIGHUP ;; 2) echo 'Sending SIGINT signal.....' kill -SIGINT ;; 3) echo 'Sending SIGQUIT signal.....' kill -SIGQUIT ;; 4) echo 'Sending SIGKILL signals.....' kill -SIGKILL ;; *) echo 'Signal number has not been processed' ;; esac> Ett fall uttalande i bash-skript används när ett beslut måste tas mot flera val. Med andra ord är det användbart när ett uttryck har möjlighet att ha flera värden. Denna metod kan ses som en ersättning för flera om-satser i ett skript. Falluttalanden har en fördel jämfört med if-satser eftersom det förbättrar läsbarheten för vår kod och de är lättare att underhålla. Case uttalanden i ett Bash-skript är ganska lika Case statements i C-språk. Men till skillnad från C, slutar Bash Case-uttalandet att fortsätta sökningen så snart matchningen inträffar. Med enkla ord, de kräver inte någon break-sats som är obligatorisk för att användas i C för att sluta söka efter ett mönster ytterligare.
Den grundläggande syntaxen för en case-sats ges nedan,
Syntax:
case EXPRESSION in Pattern_Case_1) STATEMENTS ;; Pattern_Case_1) STATEMENTS ;; Pattern_Case_N) STATEMENTS ;; *) STATEMENTS ;; esac>Så här fungerar fallbeskrivningen:
EXPRESSION>är variabeln eller värdet som utvärderas mot olika mönster (fall) för att hitta en matchning.- Fallbeskrivningen börjar med nyckelordet
case>följt avEXPRESSION>ska utvärderas.- Varje fall definieras av a
Pattern_Case>som representerar ett specifikt värde eller mönster som ska jämföras medEXPRESSION>.- Efter varje
Pattern_Case>, finns det uttalanden som ska köras omEXPRESSION>matchar det specifikaPattern_Case>. Dessa uttalanden betecknas medSTATEMENTS>.- De
;;>i slutet av varjeSTATEMENTS>block indikerar slutet på ett fallblock.- De
*)>är ett specialfall som kallas standardfallet. Om inget av de tidigare mönstren matcharEXPRESSION>, denSTATEMENTS>under*)>blocket kommer att utföras.- De
esac>nyckelord markerar slutet på ärendet.
- Om inget mönster matchas är returstatusen noll. I annat fall är returstatus utgångsstatusen för den exekverade kroppen av det matchade mönsterfallet.
- Precis som C tillhandahåller standardnyckelord för standardsats, likaså i Bash case-satsen, kan vi använda asterisksymbolen (*) och definiera ett slutligt mönster för att definiera standardfallet.
Exempel 1: Skriv ut en beskrivning för varje alternativ
I det här exemplet låter ett script användaren välja en avdelning och visar en beskrivning som motsvarar inmatningen med hjälp av ett ekokommando. I det här skriptet har vi tilldelat variabeln DEPARTMENT som Datavetenskap. Således exekveras kroppen av det första mönsterfallet.
Du kan följa instruktionerna nedan:
1. Öppna terminalen (Ctrl + Alt + T) och skapa skriptet:
department.sh>2. Lägg till dessa påståenden till skriptet:
#!/bin/bash DEPARTMENT='Computer Science' echo -n 'Your DEPARTMENT is ' case $DEPARTMENT in 'Computer Science') echo -n 'Computer Science' ;; 'Electrical and Electronics Engineering' | 'Electrical Engineering') echo -n 'Electrical and Electronics Engineering or Electrical Engineering' ;; 'Information Technology' | 'Electronics and Communication') echo -n 'Information Technology or Electronics and Communication' ;; *) echo -n 'Invalid' ;; esac>3. Var och en av raderna beskrivs nedan:
- Den första raden i skriptet börjar med shebang (#!).
- Den instruerar operativsystemet att använda en viss tolk för att analysera skriptet.
- Vi har initierat en DEPARTMENT-variabel som Datavetenskap.
- Nu använder vi en fallbeskrivning.
- Varje uttryck har hanterats genom fallbeskrivningen.
- Den sista raden, esac, har använts för att avsluta ärendeförklaringen.
4. Spara skriptet och gör det körbart.
chmod +x department.sh>5. Kör skriptet.
./department.sh>Produktion:
Exempel 2: Användning av flera mönsterfall
I varje klausul kan vi använda flera mönsterfall. Om uttrycket matchar med minst ett mönsterfall exekveras kroppen av satsen. I det här skriptet har vi tilldelat variabeln DEPARTMENT som Electronics and Communication. Det tredje mönsterfallet har två värden åtskilda av röroperatorn ( | ). Således exekveras kroppen av det tredje mönsterfallet.
Du kan följa instruktionerna nedan:
1. Öppna terminalen (Ctrl + Alt + T) och skapa skriptet:
department.sh>2. Lägg till dessa påståenden till skriptet:
#!/bin/bash DEPARTMENT='Electronics and Communication' echo -n 'Your DEPARTMENT is ' case $DEPARTMENT in 'Computer Science') echo -n 'Computer Science' ;; 'Electrical and Electronics Engineering' | 'Electrical Engineering') echo -n 'Electrical and Electronics Engineering or Electrical Engineering' ;; 'Information Technology' | 'Electronics and Communication') echo -n 'Information Technology or Electronics and Communication' ;; *) echo -n 'Invalid' ;; esac>3. Var och en av raderna har diskuterats nedan:
- Den första raden i skriptet börjar med shebang (#!).
- Den instruerar operativsystemet att använda en viss tolk för att analysera skriptet.
- Vi har initierat en AVDELNING-variabel som Elektronik och Kommunikation.
- Nu använder vi en fallbeskrivning.
- Varje uttryck har hanterats genom fallbeskrivningen.
- Den sista raden, esac, har använts för att avsluta ärendeförklaringen.
4. Spara skriptet och gör det körbart.
chmod +x department.sh>5. Kör skriptet.
./department.sh>Produktion:
Exempel 3: för loopar
I det här manuset har vi tilldelat avdelningen tre elever i en klass i en array AVDELNING. Med andra ord, vi kommer att bearbeta mer än ett uttryck som beskrivs i variabeln DEPARTMENT. För att iterera över flera uttryck kan vi använda a för en loop.
Du kan följa instruktionerna nedan:
1. Öppna terminalen (Ctrl + Alt + T) och skapa skriptet:
department.sh>2. Lägg till dessa påståenden till skriptet:
#!/bin/bash DEPARTMENT=('Electronics and Communication' 'Computer Science' 'Information Technology') for value in '${DEPARTMENT[@]}' do case $value in 'Computer Science') echo -n 'Computer Science ' ;; 'Electrical and Electronics Engineering' | 'Electrical Engineering') echo -n 'Electrical and Electronics Engineering or Electrical Engineering ' ;; 'Information Technology' | 'Electronics and Communication') echo -n 'Information Technology or Electronics and Communication ' ;; *) echo -n 'Invalid ' ;; esac done>3. Var och en av raderna beskrivs nedan:
- Den första raden i skriptet börjar med shebang (#!).
- Den instruerar operativsystemet att använda en viss tolk för att analysera skriptet.
- Vi har initierat en array DEPARTMENT med tre strängliteraler.
- Nu, med hjälp av en for-loop, itererar vi över arrayen av element.
- Varje uttryck har hanterats genom fallbeskrivningen.
- Den sista raden, esac, har använts för att avsluta ärendeförklaringen.
4. Spara skriptet och gör det körbart.
chmod +x department.sh>5. Kör skriptet.
./department.sh>Produktion:
Exempel 4: Fråga användare med Ja eller Nej
Du kan följa instruktionerna nedan:
1. Öppna terminalen (Ctrl + Alt + T) och skapa skriptet:
department.sh>2. Lägg till dessa påståenden till skriptet:
#!/bin/bash echo -n 'Are you a student? [yes or no]: ' read response case $response in 'Y' | 'y' | 'YES' | 'Yes' | 'yes') echo -n 'Yes, I am a student.' ;; 'N' | 'n' | 'No' | 'NO' | 'no' | 'nO') echo -n 'No, I am not a student.'; ;; *) echo -n 'Invalid input' ;; esac>3. Var och en av raderna förklaras nedan:
- Den första raden i skriptet börjar med shebang (#!).
- Den instruerar operativsystemet att använda en viss tolk för att analysera skriptet.
- Användaren tillfrågas som Är du student? [Ja eller nej].
- Nu ges ett svar av användaren via tangentbordet.
- Resultatet av svaret har hanterats genom en fallbeskrivning.
- Den sista raden, esac, har använts för att avsluta ärendeförklaringen.
4. Spara skriptet och gör det körbart.
chmod +x department.sh>5. Kör skriptet med kommandot nedan.
./department.sh>Produktion:
Exempel 5: Skicka signal till en process
Du kan följa instruktionerna nedan:
1. Öppna terminalen (Ctrl + Alt + T) och skapa skriptet:
signals.sh>2. Lägg till dessa påståenden till skriptet:
#!/bin/bash if [ $# -lt 2 ] then echo 'Usage : $0 Signalnumber PID' exit fi # Case statement # Signal number (expression) case '$1' in 1) echo 'Sending SIGHUP signal.....' kill -SIGHUP $2 ;; 2) echo 'Sending SIGINT signal.....' kill -SIGINT $2 ;; 3) echo 'Sending SIGQUIT signal.....' kill -SIGQUIT $2 ;; 4) echo 'Sending SIGKILL signals.....' kill -SIGKILL $2 ;; *) echo 'Signal number $1 has not been processed' ;; esac>3. Var och en av raderna förklaras nedan:
- $1 är signalnumret och $2 är process-id.
- För att skicka eller skicka en signal till det givna process-id:t använder vi kommandot kill.
- Detta kommer att köra sovkommandot i några sekunder.
- Brödtexten i den valfria sista jämförelsen *) kommer att köras i standardfallet.
4. Spara skriptet.
5. Kör skriptet med kommandot nedan.
./signals.sh>Produktion:
$ sleep 10000 $ ps -a | grep sleep 23277 pts/2 00:00:00 sleep $ ./signals.sh 9 31231 Sending SIGKILL signal $ sleep 10000 Killed>
3. Var och en av raderna förklaras nedan:
- är signalnumret och är process-id.
- För att skicka eller skicka en signal till det givna process-id:t använder vi kommandot kill.
- Detta kommer att köra sovkommandot i några sekunder.
- Brödtexten i den valfria sista jämförelsen *) kommer att köras i standardfallet.
4. Spara skriptet.
5. Kör skriptet med kommandot nedan.
./signals.sh>
Produktion:
$ sleep 10000 $ ps -a | grep sleep 23277 pts/2 00:00:00 sleep $ ./signals.sh 9 31231 Sending SIGKILL signal $ sleep 10000 Killed>
Exempel 3: för loopar