GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak používat podmíněné příkazy ve skriptech Bash

Ve skriptování bash pomáhají podmíněné příkazy při kontrole, zda je konkrétní podmínka pravdivá nebo nepravdivá. Když je podmínka pravdivá, skript shellu spustí nebo spustí blok kódu, který je daný skriptem. V opačném případě skript přeskočí provádění kódu a přeskočí na další podmíněný příkaz.

Ve skriptování bash zahrnují podmíněné příkazy if , pokud je to jinak , if-elif-else a vnořené if prohlášení. V této příručce prozkoumáme, jak se tyto podmíněné příkazy používají při provádění skriptů.

Příkaz if

Ve své nejjednodušší podobě má příkaz „if“ následující syntaxi.

if [[ conditional_statement ]]

then

 command 

fi

Podmíněný příkaz if začíná znakem if klíčové slovo. Poté následuje podmíněný příkaz, po kterém následuje pak klíčové slovo, které předchází příkazu, který se má provést, pokud podmíněný příkaz platí.

Pokud tedy condition_statement platí, pak příkaz je proveden. Pokud se vyhodnotí jako False, nic se nestane a příkaz je zcela ignorováno a skript se ukončí.

Vezměme si příklad bash skriptu, který kontroluje, zda je zadané skóre větší než 80.

$ vim check_score.sh

Zkopírujte a vložte skript.

#!/bin/bash

echo -n "Please Enter a score: "

read score

if [[ $score -gt 80 ]]

then

 echo "You have passed the exam!"

fi

Dávejte pozor na odsazení. Přidělte oprávnění ke spuštění pomocí chmod příkaz takto:

$ chmod +x check_score.sh

Poté spusťte skript.

$ ./check_score.sh

Pokud zadáte hodnotu, která je větší než 80, podmíněný příkaz bude platit a zpráva s odezvou se vytiskne na stdout

Pokud je však zadaná hodnota skóre menší než 80 – podmíněný příkaz se vyhodnotí jako nepravdivý a nic se nestane. Skript se jednoduše ukončí.

Příkaz if-else

V předchozím shell skriptu byl proveden pouze jeden příkaz po podmíněném příkazu vyhodnoceném jako True. Když byla podmínka vyhodnocena jako False, nic se nevytisklo a skript se právě ukončil. The if- else příkaz nám pomáhá provést příkaz, pokud je podmínka vyhodnocena jako nepravda. Ostatní po příkazu následuje příkaz nebo příkaz, pokud by podmínka vrátila hodnotu False.

if [[ conditional_statement ]]

then

 command 

else

 command

fi

Upravme předchozí skript shellu a přidejte jiný prohlášení

#!/bin/bash

echo -n "Please Enter a score: "

read score

if [[ $score -gt 80 ]]

then

 echo "You have passed the exam!"

else

 echo "You have failed the exam, please try again"

fi

Zde skript shellu spustí blok kódu po else pouze v případě, že je první podmínka vyhodnocena jako nepravdivá – to znamená, že poskytnuté skóre je menší než 80.

V prvním případě je zadané skóre 90 , která je větší než 80, a proto se provede první příkaz ve skriptu a skript se ukončí.

Ve druhém případě je však zadáno 70, a protože hodnota je menší než 80, skript přeskočí první příkaz, protože je vyhodnocen jako nepravda, a pokračuje ve vykonání druhého příkazu po else prohlášení.

Příkaz if-elif-else

Dosud jsme zkontrolovali jednu podmínku, která se vyhodnotí jako True nebo False. elif Příkaz (else -if ) se používá tam, kde existuje několik podmíněných příkazů, které mají různé výsledky. Pokud se jedna podmínka vyhodnotí jako False, pokračuje kontrola, zda jsou ostatní podmínky pravdivé. Zde je jednoduchá syntaxe příkazu if-elif-else.

if [[ conditional_statement_1 ]]

then

 command_1 

elif [[ conditional_statement_2 ]]

then

 command_2

else

 command_3

fi

Zvažte skript níže

#!/bin/bash

echo -n "Please Enter a score: "

read score

if [[ $score -ge 90 ]]

then

 echo "Excellent!"

elif [[ $score -ge 70 ]]

then

 echo "Congratulations! Job well done!"

elif [[ $score -ge 50 ]]

then

 echo "Fairly done. There's more room for improvement!"

else

 echo "Poorly done"

fi

Pokud je v tomto příkladu skóre větší nebo rovno 90, vypíše se zpráva Výborně! Pokud je však skóre menší než 90, ale větší nebo rovno 70, vypíše Blahopřejeme! Dobrá práce! .
Pokud je skóre menší než 70, ale větší nebo rovno 50, vytiskne se zpráva Fairly done. Je zde více prostoru pro zlepšení!

A nakonec, pokud je skóre nižší než 50, vytiskne se text Špatně provedeno.

Vnořený příkaz if

Vnořený příkaz if obsahuje příkaz if uvnitř jiného příkazu if. když platí jedna podmínka, skript pokračuje ke kontrole další podmínky. V níže uvedené ukázce vezmeme vstupní hodnoty 3 číselných hodnot a zkontrolujeme, která z nich je největší.

#!/bin/bash

read -p "Please enter the value of j:" j

read -p "Please enter the value of k:" k

read -p "Please enter the value of l:" l

if [ $j -gt $k ]

then

 if [ $j -gt $l ]

 then

 echo "j is greatest"

 else

 echo "l is greatest"

 fi

else

 if [ $k -gt $l ]

 then

 echo "k is greatest"

 else

 echo "l is greatest"

 fi

fi

Shrnutí

To byl přehled podmíněných příkazů v bash skriptech na vysoké úrovni. Jak jste viděli, podmíněné příkazy se používají k určení výsledku skriptu na základě nastavených podmíněných výrazů. Doufejme, že nyní máte základní základy podmíněných příkazů.


Ubuntu
  1. Jak používat příkazy historie Bash

  2. Jak používat šifrované heslo ve skriptu Linux Bash Shell

  3. Jak spustit bash skript?

  1. Jak používat příkaz if else Conditionals ve skriptu Bash

  2. Jak ladit Bash skript?

  3. Použít rozšíření .sh nebo .bash pro skripty Bash?

  1. Jak používat příkaz Uptime v Ubuntu Linux

  2. Automatické potvrzení při spouštění skriptů Bash?

  3. Jak rozdělit řetězec ve skriptu Bash