GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come utilizzare le istruzioni condizionali negli script Bash

Nello scripting bash, le istruzioni condizionali aiutano a verificare se una condizione specifica è vera o falsa. Quando la condizione è vera, lo script della shell esegue o esegue un blocco di codice stabilito dallo script. In caso contrario, lo script salta l'esecuzione del codice e passa all'istruzione condizionale successiva.

Nello scripting bash, le istruzioni condizionali includono if , se-altro , if-elif-else e nidificato se dichiarazioni. In questa guida esploreremo come queste istruzioni condizionali vengono utilizzate nell'esecuzione degli script.

L'istruzione if

Nella sua forma più semplice, l'istruzione "if" assume la seguente sintassi.

if [[ conditional_statement ]]

then

 command 

fi

L'istruzione condizionale if inizia con if parola chiave. Questa è seguita da un'istruzione condizionale seguita da then parola chiave che precede il comando da eseguire se l'istruzione condizionale è vera.

Quindi, se la istruzione_condizione vale, quindi il comando viene eseguito. Se restituisce False, non accade nulla e il comando viene completamente ignorato e lo script si chiude.

Prendiamo un esempio di uno script bash che controlla se un punteggio fornito è maggiore di 80.

$ vim check_score.sh

Copia e incolla lo script.

#!/bin/bash

echo -n "Please Enter a score: "

read score

if [[ $score -gt 80 ]]

then

 echo "You have passed the exam!"

fi

Prendi nota del rientro. Assegna le autorizzazioni di esecuzione utilizzando chmod comando come segue:

$ chmod +x check_score.sh

Quindi esegui lo script.

$ ./check_score.sh

Se inserisci un valore maggiore di 80, l'istruzione condizionale è vera e il messaggio echo viene stampato sullo stdout

Tuttavia, se il valore fornito per il punteggio è inferiore a 80, la dichiarazione condizionale risulta falsa e non accade nulla. Lo script esce semplicemente.

L'istruzione if-else

Nello script della shell precedente, veniva eseguito un solo comando dopo l'istruzione condizionale valutata su True. Quando la condizione è stata valutata su False, non è stato stampato nulla e lo script è appena uscito. Il se-altro istruzione ci aiuta a eseguire un comando se una condizione risulta falsa. L'altro istruzione è quindi seguita da un comando o un'istruzione se la condizione restituisce False.

if [[ conditional_statement ]]

then

 command 

else

 command

fi

Modifichiamo lo script della shell precedente e aggiungiamo un altro dichiarazione

#!/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

Qui, lo script della shell esegue il blocco di codice dopo else dichiarazione solo se la prima condizione risulta falsa, ovvero se il punteggio fornito è inferiore a 80.

In primo luogo, il punteggio fornito è 90 , che è maggiore di 80, e quindi la prima istruzione nello script viene eseguita e lo script viene chiuso.

Nel secondo caso, invece, viene fornito 70, e poiché il valore è minore di 80, lo script salta la prima istruzione poiché restituisce false e procede all'esecuzione della seconda istruzione dopo else dichiarazione.

La dichiarazione if-elif-else

Finora, abbiamo verificato una condizione che restituisce True o False. L'elif L'istruzione (else -if ) viene utilizzata quando sono presenti diverse istruzioni condizionali che hanno risultati diversi. Se una condizione restituisce False, procede a verificare se le altre condizioni sono vere. Ecco una semplice sintassi per l'istruzione if-elif-else.

if [[ conditional_statement_1 ]]

then

 command_1 

elif [[ conditional_statement_2 ]]

then

 command_2

else

 command_3

fi

Considera lo script qui sotto

#!/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

In questo esempio, se il punteggio è maggiore o uguale a 90, viene stampato il messaggio Eccellente! Tuttavia, se il punteggio è inferiore a 90 ma maggiore o uguale a 70, viene stampato Congratulazioni! Lavoro ben fatto! .
Se il punteggio è inferiore a 70, ma maggiore o uguale a 50 stampa il messaggio Abbastanza fatto. C'è più margine di miglioramento!

E infine, se il punteggio è inferiore a 50, viene stampato Errore male.

Dichiarazione nidificata if

Un'istruzione if annidata comprende un'istruzione if all'interno di un'altra istruzione if. quando una condizione è vera, lo script procede alla verifica della condizione successiva. Nella dimostrazione seguente, prenderemo i valori di input di 3 valori numerici e verificheremo quale tra questi è il più grande.

#!/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

Riepilogo

Questa era una panoramica di alto livello delle istruzioni condizionali negli script bash. Come hai visto, le istruzioni condizionali vengono utilizzate per determinare il risultato di uno script basato su espressioni condizionali impostate. Si spera che ora tu abbia una base di base per le affermazioni condizionali.


Ubuntu
  1. Come usare i comandi della cronologia di Bash

  2. Come utilizzare il comando Uptime in Ubuntu Linux

  3. Utilizzare l'estensione .sh o .bash per gli script Bash?

  4. Conferma automatica durante l'esecuzione di script Bash?

  5. Come dividere una stringa nello script Bash

Come utilizzare il comando di lettura Bash

Come utilizzare il comando echo negli script Bash in Linux

Come lavorare con l'istruzione Case negli script Bash

Come eseguire uno script Bash

Come utilizzare if-else negli script della shell?

Comprendere Bash If Else e altre dichiarazioni condizionali