Quando si lavora con Bash e shell scripting, potrebbe essere necessario utilizzare le condizioni nello script.
Nella programmazione, le condizioni sono cruciali : vengono utilizzate per affermare se alcune condizioni sono vere o meno.
In questo tutorial, ci concentreremo su una delle istruzioni condizionali del linguaggio Bash : l’istruzione Bash if else.
Vedremo come puoi usare questa istruzione per eseguire i tuoi script in modo condizionale.,
Imparerai anche come usare le istruzioni Bash if else nidificate per creare codice più complesso.
Sommario
Bash If Else
per eseguire un Bash “se else”, devi utilizzare quattro diverse parole chiave : if, then, else e fi :
- se : rappresenta la condizione che si desidera controllare;
- quindi : se la precedente condizione è vera, quindi eseguire un comando specifico;
- altro : se la precedente condizione è falsa, quindi eseguire un altro comando;
- fi : si chiude il “se, poi, else”.,
Quando si utilizza l’istruzione “if else”, è necessario racchiudere le condizioni tra parentesi quadrate singole o doppie.
if ]then <execute command>else <execute another command>fi
Si noti che l’istruzione “ELSE” è facoltativa, se la si omette, non verrà eseguito nulla se la condizione restituisce false.
Nota: è necessario separare la condizione dalle parentesi quadre con uno spazio, altrimenti si potrebbe ottenere un errore di sintassi.,
If Else Examples
Ora che sai di più sull’istruzione Bash “if else”, vediamo come puoi usarlo negli esempi del mondo reale.
In questa sezione, costruiremo uno script che stampa un messaggio se viene eseguito dall’utente root.
Se lo script non viene eseguito dall’utente root, scriverà un altro messaggio personalizzato.
Per verificare se lo script viene eseguito da root, dobbiamo vedere se l’UID del chiamante è zero.,
#!/bin/bash# If the user is root, its UID is zero.if then echo "You are root!"else echo "You are not root."fi
Come indicato in precedenza, l’istruzione “else” non è obbligatoria.
Se omettiamo nel nostro script creato in precedenza, saremmo comunque in grado di eseguire la prima istruzione “then”.
#!/bin/bash# If the user is root, its UID is zero.if then echo "You are root!"fi
Ora, cosa succede se si desidera aggiungere ulteriori istruzioni “if” ai propri script?,
Bash If Elif Statement
L’istruzione “If Elif” viene utilizzata in Bash per aggiungere ulteriori istruzioni “if” agli script.,
per eseguire un Bash “se elif” dichiarazione”, devi utilizzare cinque diverse parole chiave : se, quindi, elif, altro e fi :
- se : rappresenta la condizione che si desidera controllare;
- quindi : se la precedente condizione è vera, quindi eseguire un comando specifico;
- elif : utilizzato per aggiungere un’ulteriore condizione per l’istruzione;
- altro: se le condizioni precedenti sono false, eseguire un altro comando;
- fi : si chiude il “se, elif, quindi” istruzione.,
if ]then <execute command>elif ]then <execute another command>else <execute default command>fi
Ancora una volta, l’istruzione “ELSE” è facoltativa, quindi potresti voler ometterla se non hai bisogno di un’istruzione predefinita.
if ]then <execute command>elif ]then <execute another command>fi
If Elif Examples
Nella nostra sezione precedente, abbiamo usato l’istruzione “if else” per verificare se un utente è root o meno.
In questa sezione, verificheremo se l’utente è root o se l’utente ha un UID di 1002.
Se questo non è il caso, usciremo dallo script e restituiremo il prompt all’utente.,
if ]then echo "You are root!"elif ]then echo "You are user, welcome!"else echo "You are not welcome here." exit 1;fi
Congratulazioni, ora sai come usare l’istruzione “if elif”!
Ora cosa succede se si desidera avere più condizioni sotto la stessa istruzione “if”?
Più condizioni in If Else
Per avere più condizioni scritte nella stessa istruzione “if else”, è necessario separare le condizioni con un operatore “E” o un operatore “O”.,
Per esempio, se si desidera scrivere uno script che controlla che tu sei l’utente root e fornito il parametro corretto, si dovrebbe scrivere :
If Else
In alcuni casi, si desidera implementare condizioni nidificate in modo da avere condizioni controllate in condizioni preliminari.
Per avere istruzioni “if else” annidate, devi semplicemente includere l’istruzione “if” in un’altra istruzione “if” e chiudere l’istruzione nidificata prima di quella che lo racchiude.,
if ]then if ] then <execute command> else <execute another command> fifi
Nota : assicurati di avere un’istruzione “fi” di chiusura per ogni istruzione “if” che apri. Un singolo ” fi “non è semplicemente sufficiente per più istruzioni” if”.
Esempi di istruzioni nidificate
Ad esempio, diciamo che si desidera verificare che l’utente sia root prima di verificare che il primo argomento fornito sia zero.,
Per risolvere questo, si dovrebbe scrivere una nested “se, poi, else” nel seguente modo :
Bash Test
Come probabilmente avete notato, nelle sezioni precedenti, abbiamo usato il “-eq” operatore al fine di confrontare il valore di una variabile di un numero.
Abbiamo fatto un semplice controllo di uguaglianza, ma cosa succede se vuoi avere un controllo di disuguaglianza?
Cosa succede se si desidera verificare se un valore è maggiore di un determinato numero, ad esempio?
Per eseguire questa operazione, sono necessari test Bash.,
I test Bash sono un insieme di operatori che è possibile utilizzare nelle istruzioni condizionali per confrontare i valori insieme.
I test Bash possono essere elencati eseguendo il comando” help test”.,
$ help test
Quando si scrive Bash test, vi sono essenzialmente tre opzioni :
- condizioni di Scrittura su file e directory : se esistono, se sono un personaggio di file, un file di periferica e così via;
- condizioni di Scrittura dei numeri : se sono uguali ad ogni altro, se uno è più grande dell’altra;
- condizioni di Scrittura su stringhe : se una stringa variabile è impostata o se due stringhe sono uguali tra loro.,
Condizioni del file Bash
Le condizioni del file Bash vengono utilizzate per verificare se un file esiste o meno, se può essere letto, modificato o eseguito.,n)
Per esempio, per verificare se un file è una directory, occorre scrivere il seguente script
#!/bin/bash# Checking the first argument providedif ]then echo "This is a directory"else echo "Not a directory"fi
Bash Numero di Condizioni
Bash numero condizioni sono utilizzati per confrontare due numeri : se sono uguali, se uno è maggiore di un altro o inferiore a un altro.,num2
Per esempio, per controllare se un numero non è uguale a zero, si dovrebbe scrivere :
Bash Stringa Condizioni
Bash stringa condizioni sono usati per controllare se due stringhe sono uguali o se una stringa, se vuoto.,
Here is a table of the main Bash string conditions :
Operator | Description |
str1 = str2 | Checks if strings are equal or not |
str1 !,= str2 | Controlla se le stringhe sono diverse |
-z str1 | Controlla se str1 è vuoto |
-n str1 | Controlla se str1 non è vuoto |
Per esempio, per verificare se un utente ha fornito un valore per il vostro script, si dovrebbe scrivere :
Conclusione
il tutorial di oggi, si è parlato del Bash “Se Else”.
Hai visto, con esempi, che puoi costruire istruzioni più complesse : usando elif e istruzioni nidificate.,
Infine, hai scoperto i test Bash, cosa sono e come vengono utilizzati per verificare le condizioni negli script.
Se sei interessato all’amministrazione del sistema Linux, abbiamo una sezione completa dedicata ad esso sul sito web, quindi assicurati di controllarlo!