Le istruzioni condizionali Bash eseguono calcoli o azioni diversi a seconda che una condizione booleana specificata dal programmatore restituisca true o false. Queste istruzioni vengono utilizzate per eseguire diverse parti del programma della shell a seconda che determinate condizioni siano vere. La possibilità di branch rende potenti gli script di shell.
In Bash, abbiamo le seguenti istruzioni condizionali:
- istruzione if..then..fi (se semplice)
- istruzione if..then..else..fi (If-Else)
- Istruzione if..elif..else..fi (Else If ladder)
- se..allora..altrimenti..se..allora..fi..fi..(nidificato se)
Questi sono simili alle affermazioni awk if di cui abbiamo discusso in precedenza.
1. Bash If..then..fi dichiarazione
if [ conditional expression ] then statement1 statement2 . fi
Questa istruzione if è anche chiamata istruzione if semplice. Se l'espressione condizionale data è vera, inserisce ed esegue le istruzioni racchiuse tra le parole chiave “then” e “fi”. Se l'espressione data restituisce zero, viene eseguita la conseguente lista di istruzioni.
se allora fi esempio:
#!/bin/bash count=100 if [ $count -eq 100 ] then echo "Count is 100" fi
2. Bash If..then..else..fi dichiarazione
If [ conditional expression ] then statement1 statement2 . else statement3 statement4 . fi
Se l'espressione condizionale è vera, esegue l'istruzione1 e 2. Se l'espressione condizionale restituisce zero, salta all'altra parte ed esegue l'istruzione3 e 4. Dopo l'esecuzione della parte if/else, l'esecuzione riprende con le istruzioni conseguenti.
se allora altro fi esempio:
#!/bin/bash count=99 if [ $count -eq 100 ] then echo "Count is 100" else echo "Count is not 100" fi
Nota: Questo articolo fa parte della serie in corso di Bash Tutorial.
3. Bash If..elif..else..fi
If [ conditional expression1 ] then statement1 statement2 . elif [ conditional expression2 ] then statement3 statement4 . . . else statement5 fi
Puoi usarlo se .. elif.. se , se vuoi selezionare uno dei tanti blocchi di codice da eseguire. Controlla l'espressione 1, se è vera esegue l'istruzione 1,2. Se expression1 è false, controlla expression2 e se tutte le espressioni sono false, entra nel blocco else ed esegue le istruzioni nel blocco else.
if then elif allora else fi esempio:
#!/bin/bash count=99 if [ $count -eq 100 ] then echo "Count is 100" elif [ $count -gt 100 ] then echo "Count is greater than 100" else echo "Count is less than 100" fi
4. Bash Se..allora..altro..se..allora.fi..fi..
If [ conditional expression1 ] then statement1 statement2 . else if [ conditional expression2 ] then statement3 . fi fi
L'istruzione If e l'istruzione else potrebbero essere nidificate in bash. La parola chiave "fi" indica la fine dell'istruzione if inner e tutte le istruzioni if devono terminare con la parola chiave "fi".
L'esempio "if then elif then else fi" menzionato sopra può essere convertito in nidificato se come mostrato di seguito.
#!/bin/bash count=99 if [ $count -eq 100 ] then echo "Count is 100" else if [ $count -gt 100 ] then echo "Count is greater than 100" else echo "Count is less than 100" fi fi
Nel prossimo articolo parleremo di come utilizzare le espressioni condizionali di Bash con esempi pratici.
Lettura consigliata
Bash 101 Hacks, di Ramesh Natarajan . Passo la maggior parte del mio tempo in ambiente Linux. Quindi, naturalmente sono un grande fan della riga di comando di Bash e degli script di shell. 15 anni fa, quando stavo lavorando su diverse versioni di *nix, scrivevo molto codice sulla shell C e sulla shell Korn. Negli anni successivi, quando ho iniziato a lavorare su Linux come amministratore di sistema, ho praticamente automatizzato ogni possibile attività utilizzando lo scripting della shell Bash. Sulla base della mia esperienza con Bash, ho scritto l'eBook Bash 101 Hacks che contiene 101 esempi pratici sia sulla riga di comando di Bash che sugli script di shell. Se stavi pensando di padroneggiare Bash, fatti un favore e leggi questo libro, che ti aiuterà a prendere il controllo della tua riga di comando di Bash e degli script della shell.