Instrukcje warunkowe: Istnieje w sumie 5 instrukcji warunkowych, których można używać w programowaniu w bashu
- jeśli stwierdzenie
- instrukcja if-else
- Instrukcja if..elif..else..fi (drabinka Else If)
- if..then..else..if..then..fi..fi..(Zagnieżdżone jeśli)
- instrukcja switch
Ich opis wraz ze składnią wygląda następująco:
jeśli stwierdzenie
Ten blok zostanie przetworzony, jeśli określony warunek jest prawdziwy.
Składnia:
if [ expression ] then statement fi>
instrukcja if-else
Jeśli określony warunek nie jest spełniony w części if, wówczas część zostanie wykonana.
Składnia
if [ expression ] then statement1 else statement2 fi>
Instrukcja if..elif..else..fi (drabinka Else If)
Aby użyć wielu warunków w jednym bloku if-else, w powłoce używane jest słowo kluczowe elif. Jeśli wyrażenie1 jest prawdziwe, wykonuje instrukcje 1 i 2, po czym proces jest kontynuowany. Jeśli żaden z warunków nie jest spełniony, przetwarzana jest inna część.
Składnia
if [ expression1 ] then statement1 statement2 . . elif [ expression2 ] then statement3 statement4 . . else statement5 fi>
if..then..else..if..then..fi..fi..(Zagnieżdżone jeśli)
Zagnieżdżonego bloku if-else można użyć, gdy spełniony jest jeden warunek, a następnie ponownie sprawdzany jest inny warunek. W składni, jeśli wyrażenie1 jest fałszywe, przetwarza inną część i ponownie sprawdzane jest wyrażenie2.
Składnia:
if [ expression1 ] then statement1 statement2 . else if [ expression2 ] then statement3 . fi fi>
instrukcja switch
Instrukcja case działa jak instrukcja switch, jeśli określona wartość pasuje do wzorca, wówczas wykona blok tego konkretnego wzorca
Po znalezieniu dopasowania wszystkie powiązane instrukcje aż do wykonania podwójnego średnika (;;).
Sprawa zostanie zakończona po wykonaniu ostatniego polecenia.
Jeśli nie ma dopasowania, status wyjścia sprawy wynosi zero.
Składnia:
case in Pattern 1) Statement 1;; Pattern n) Statement n;; esac>
Przykładowe programy
Przykład 1:
Realizowanieif>oświadczenie
#Initializing two variables> a=10> b=20> > #Check whether they are equal> if> [>$a> ==>$b> ]> then> >echo> 'a is equal to b'> fi> > #Check whether they are not equal> if> [>$a> !=>$b> ]> then> >echo> 'a is not equal to b'> fi> |
>
>
Wyjście
$bash -f main.sh a is not equal to b>
Przykład 2:
Realizowanieif.else>oświadczenie
#Initializing two variables> a=20> b=20> > if> [>$a> ==>$b> ]> then> >#If they are equal then>print> this> >echo> 'a is equal to b'> else> >#>else> print> this> >echo> 'a is not equal to b'> fi> |
>
>
Wyjście
$bash -f main.sh a is equal to b>
Przykład 3:
Realizowanieswitch>oświadczenie
CARS=>'bmw'> > #Pass the variable in string> case> '$CARS'> in> >#>case> 1> >'mercedes'>)>echo> 'Headquarters - Affalterbach, Germany'> ;;> > >#>case> 2> >'audi'>)>echo> 'Headquarters - Ingolstadt, Germany'> ;;> > >#>case> 3> >'bmw'>)>echo> 'Headquarters - Chennai, Tamil Nadu, India'> ;;> esac> |
>
>
Wyjście
$bash -f main.sh Headquarters - Chennai, Tamil Nadu, India.>
Notatka: W skryptach powłoki rozróżniana jest wielkość liter, co oznacza, że podczas pisania skryptów należy przestrzegać właściwej składni.
numer Java na ciąg