GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare if-else negli script della shell?

Andando avanti dal nostro precedente tutorial sugli array negli script di shell, capiamo come possiamo usare if-else negli script di shell.

La programmazione condizionale è una parte importante di qualsiasi linguaggio di programmazione perché eseguire ogni singola istruzione nel nostro programma è, il più delle volte, indesiderabile.

E abbiamo bisogno di un modo per eseguire condizionalmente le istruzioni. L'if-else negli script di shell serve proprio a questa situazione.

Condizioni negli script della shell

Una delle parti più importanti della programmazione condizionale sono le istruzioni if-else. Un'istruzione if-else ti consente di eseguire istruzioni condizionali iterative nel tuo codice.

Usiamo if-else negli script di shell quando desideriamo valutare una condizione, quindi decidiamo di eseguire un insieme tra due o più insiemi di istruzioni usando il risultato.

Questo essenzialmente ci permette di scegliere una risposta al risultato che la nostra espressione condizionale restituisce.

Come funziona if-else negli script di shell?

Ora sappiamo cos'è una funzione if-else e perché è importante per qualsiasi programmatore, indipendentemente dal loro dominio. Per capire if-else negli script di shell, abbiamo bisogno di scomporre il funzionamento della funzione condizionale.

Diamo un'occhiata alla sintassi del blocco condizione if-else.

if [condition]
then
   statement1
else
   statement2
fi

Qui abbiamo quattro parole chiave, ovvero if, then, else e fi.

  1. La parola chiave se è seguito da una condizione .
  2. Questa condizione viene valutato per decidere quale istruzione verrà eseguita dal processore.
  3. Se la condizione restituisce TRUE, il processore eseguirà le istruzioni seguite dalla parola chiave then . Nella sintassi è menzionato come statement1 .
  4. Nel caso in cui la condizione restituisce FALSE, il processore eseguirà le istruzioni seguite dalla parola chiave else . Questo è indicato come dichiarazione2 nella sintassi della funzione.

Una cosa importante da tenere a mente è che, come la programmazione C, lo scripting della shell fa distinzione tra maiuscole e minuscole. Quindi, devi stare attento quando usi le parole chiave nel tuo codice.

Come usare if-else nello script della shell

È facile vedere la sintassi di una funzione e credere di sapere come usarla. Ma è sempre una scelta migliore comprendere una funzione attraverso esempi perché aiutano a capire il ruolo che svolgono i diversi aspetti di una funzione.

Ecco alcuni esempi utili di if-else negli script di shell per darti un'idea migliore di come utilizzare questo strumento.

Comando Descrizione
&& E logico
|| OR logico
$0 Argomento 0, ovvero il comando utilizzato per eseguire lo script
$1 Primo argomento (cambia numero per accedere ad altri argomenti)
-eq Controllo di uguaglianza
-ne Controllo disuguaglianza
-lt Meno di
-le Inferiore o uguale a
-gt Maggiore di
-ge Maggiore o uguale a

1. Usando if-else per verificare se due numeri sono uguali

Quando si cerca di comprendere il funzionamento di una funzione come if-else in uno script di shell, è bene iniziare le cose in modo semplice. Qui, inizializziamo due variabili aeb, quindi utilizziamo la funzione if-else per verificare se le due variabili sono uguali. Lo script bash dovrebbe apparire come segue per questa attività.

#!/bin/bash
m=1
n=2

if [ $n -eq $m ]
then
        echo "Both variables are the same"
else
        echo "Both variables are different"
fi

Risultato:

Both variables are different

2. Utilizzo di if-else per confrontare due valori

L'uso più comune di if-else negli script di shell è per confrontare due valori. Il confronto di una variabile con un'altra variabile o un valore fisso aiuta viene utilizzato in una varietà di casi da tutti i tipi di programmatori.

Per il bene di questo esempio, inizializzeremo due variabili e utilizzeremo la funzione if-else per trovare la variabile maggiore dell'altra.

#!/bin/bash
a=2
b=7
if [ $a -ge $b ]
then
  echo "The variable 'a' is greater than the variable 'b'."
else
  echo "The variable 'b' is greater than the variable 'a'."
fi

Risultato:

The variable 'b' is greater than the variable 'a'.

3. Utilizzo di if-else per verificare se un numero è pari

A volte ci imbattiamo in situazioni in cui dobbiamo affrontare e distinguere tra numeri pari e dispari. Questo può essere fatto con if-else negli script di shell se prendiamo l'aiuto dell'operatore modulus.

L'operatore modulo divide un numero con un divisore e restituisce il resto.

Poiché sappiamo che tutti i numeri pari sono multipli di 2, possiamo utilizzare il seguente script di shell per verificare se un numero è pari o dispari.

#!/bin/bash
n=10
if [ $((n%2))==0 ]
then
  echo "The number is even."
else
  echo "The number is odd."
fi

Risultato:

The number is even

Come puoi vedere, abbiamo racchiuso una parte della condizione tra doppie parentesi. Questo perché è necessario che l'operazione del modulo venga eseguita prima che la condizione venga verificata.

Inoltre, racchiudendo tra parentesi doppie vengono eseguite istruzioni in stile C che ti consentono di elaborare alcuni comandi in stile C all'interno degli script bash.

4. Utilizzo di if-else come semplice richiesta di password

La funzione if-else è nota per la sua versatilità e gamma di applicazioni. In questo esempio, useremo if-else nello script della shell per creare l'interfaccia per una richiesta di password.

Per fare ciò, chiederemo all'utente di inserire la password e di memorizzarla nella variabile pass.

Se corrisponde alla password predefinita, che in questo esempio è "password", l'utente riceverà l'output come -"La password è corretta".

Altrimenti, lo script della shell dirà all'utente che la password non era corretta e chiederà loro di riprovare.

#!/bin/bash
echo "Enter password"
read pass
if [ $pass="password" ]
then
  echo "The password is correct."
else
  echo "The password is incorrect, try again."
fi

Conclusione

La funzione di if-else nello script di shell è una risorsa importante per i programmatori di shell. È lo strumento migliore da utilizzare quando è necessario eseguire una serie di istruzioni in base a condizioni predefinite.

Il blocco if-else è una, se non la parte più essenziale della programmazione condizionale. Regolando l'esecuzione di istruzioni specifiche non solo rendi il tuo codice più efficiente, ma liberi anche il tempo prezioso che il processore potrebbe aver sprecato nell'esecuzione di istruzioni che non sono necessarie per un caso specifico.

Ci auguriamo che questo tutorial sia stato in grado di aiutarti a capire come utilizzare la funzione if-else. Se hai domande, feedback o suggerimenti, non esitare a contattarci nei commenti qui sotto.


Linux
  1. Come eliminare i privilegi di root negli script della shell?

  2. Come verificare la conformità a Posix degli script della shell?

  3. Come fare eco a una nuova riga negli script di Bash Shell

  4. Come usare gli alias di shell in Linux

  5. Come usare il comando su su adb shell?

Come utilizzare il comando echo negli script Bash in Linux

Come installare e utilizzare ZSH Shell in Linux

Come utilizzare le estensioni della shell di GNOME [Guida completa]

Come installare e utilizzare Nu Shell su Linux

Come leggere gli argomenti della riga di comando negli script della shell?

Come utilizzare Linux Bash Shell in Windows 10?