Tipi di dichiarazioni condizionali
I seguenti tipi di dichiarazioni condizionali possono essere utilizzati in bash.
Ogni tipo di affermazione è spiegato in questo tutorial con un esempio.
Operatori condizionali
Molti operatori condizionali possono essere utilizzati nell'istruzione "if" per svolgere qualsiasi compito condizionale. Alcuni operatori condizionali per lo più usati sono menzionati di seguito.
Operatore | Descrizione |
-Eq | Restituisce vero se due numeri sono equivalenti |
-lt | Restituisce vero se un numero è inferiore a un altro numero |
-Gt | Restituisce vero se un numero è maggiore di un altro numero |
== | Restituisce vero se due stringhe sono equivalenti |
!= | Restituisce vero se due stringhe non sono equivalenti |
! | Restituisce vero se l'espressione è falsa |
-D | Controlla l'esistenza di una directory |
-e | Controlla l'esistenza di un file |
-R | Controlla l'esistenza di un file e leggi l'autorizzazione |
-w | Controlla l'esistenza di un file e scrivi l'autorizzazione |
-X | Controlla l'esistenza di un file ed esegui l'autorizzazione |
Uso di una semplice istruzione IF
Sintassi:
se [condizione]; Poi
(I)
fi
Questo esempio mostra l'uso singolo condizionale dell'istruzione IF. Crea un file chiamato 'cond1.sh 'e aggiungi il seguente script. Questo script prenderà un valore numerico come input e verificherà il valore inferiore a 100 o meno utilizzando se condizione. Se la condizione è vera, allora stamperà un messaggio nel terminale.
cond1.sh
#!/Bin/Bash
Echo "Inserisci un numero"
Leggi n
if [$ n -lt 100]; Poi
printf "$ n è inferiore a 100 \ n"
fi
Produzione:
Esegui lo script.
$ bash cond1.sh
Qui, 87 è preso come input che è inferiore a 100. Quindi, l'output è "87 è inferiore a 100". Nessun output è stampato per l'input maggiore di 100.
Come è possibile applicare due condizioni con l'istruzione logica e in "if" è mostrata in questo esempio. Crea un file denominato 'cond2.sh'E aggiungi il seguente script. Qui, nome utente E parola d'ordine sarà preso dall'utente. Successivamente, l'istruzione "se" viene utilizzata per controllare il nome utente è 'Admin'E la password è'Superuser'. Se entrambi i valori corrispondono, allora l'istruzione "if" restituirà true e stampa il messaggio "Accedi correttamente".
cond2.sh
#!/Bin/Bash
Echo "Inserisci il nome utente"
Leggi un
Echo "Inserisci password"
Leggi PW
if [["$ un" == "amministratore" && "$ pw" == "superuser"]]; Poi
Echo "Accedi di successo."
fi
Produzione:
Esegui lo script.
$ bash cond2.sh
Lo script non verrà visualizzato alcun output per input non valido e stamperà il messaggio di successo per input valido.
Uso dell'istruzione IF-Else
Sintassi:
se [condizione]; Poi
(I)
altro
(I)
fi
Per eseguire un'istruzione per la vera condizione e un'altra dichiarazione per la falsa condizione, se altro L'istruzione viene utilizzata in questo esempio. Crea un file denominato 'Cond3.sh' e aggiungi il seguente script. Qui, $ Nome La variabile viene utilizzata per prendere input dall'utente e il valore di $ Nome verrà confrontato con due valori, 'Neha' E 'Nil'. Se $ Nome corrisponde a uno di questi valori, quindi se la condizione restituirà vera e la dichiarazione di 'Se' la parte verrà eseguita. Se $ Nome non corrisponde a nessuno dei valori quindi se la condizione restituirà falsa e la dichiarazione di 'altro' la parte verrà eseguita.
cond3.sh
#!/Bin/Bash
Echo "Inserisci il tuo nome"
Leggi il nome
if [[$ name == "neha" || $ name == 'nil']]; Poi
Echo "Hai vinto il premio"
altro
echo "prova per la prossima volta"
fi
Produzione:
Esegui lo script.
$ bash cond3.sh
L'output è "Hai vinto il premio" per input valido e "prova per la prossima volta" per l'input non valido.
Uso dell'istruzione if-elif-else
Sintassi:
se [condizione]; Poi
(I)
elif [condizione]; Poi
(I)
..
altro
(I)
fi
Condizioni multiple con più istruzioni IF sono dichiarate in questo esempio per stampare il grado in base al marchio di input. Crea un file denominato 'Cond4.sh'E aggiungi il seguente script. Dopo aver preso il valore di $ Mark, La prima istruzione "if" testerà il valore è maggiore o uguale a 90. Se restituisce vero, stampa "Grado - A+", altrimenti andrà per la seconda condizione. Il secondo "se" testerà il valore è inferiore a 90 e maggiore o uguale a 80. Se restituisce vero, stampa "Grado - A" altrimenti andrà per la terza condizione. Se la terza condizione è vera, allora stamperà "Grado - B+", altrimenti andrà per la quarta condizione. Se la quarta condizione è vera, allora stampa "Grado - C+" e se restituisce falso, verrà eseguita la dichiarazione di altro tipo che verrà eseguita, "Grado - F".
cond4.sh
#!/Bin/Bash
Echo "Inserisci il segno"
Leggi Mark
if (($ mark> = 90)); Poi
Echo "Grade - A+"
Elif (($ Mark < 90 && $mark >= 80)); Poi
Echo "Grade - A"
Elif (($ Mark < 80 && $mark >= 70)); Poi
Echo "Grade - B+"
Elif (($ Mark < 70 && $mark >= 60)); Poi
Echo "Grade - C+"
altro
Echo "Grade - F"
fi
Produzione:
Esegui lo script.
$ bash cond4.sh
Lo script è testato con i valori di tre marchi. Questi sono 95, 79 e 50. Secondo le condizioni utilizzate nello script, viene stampata la seguente uscita.
Uso del nidificato se
Sintassi:
se [condizione]; Poi
Comandi
se [condizione]; Poi
Comandi
fi
fi
Questo esempio mostra l'uso dell'istruzione se nidificata che calcolerà il bonus in base all'importo delle vendite e alla durata del tempo. Crea un file chiamato 'cond5.sh 'e aggiungi il seguente codice. I valori di $ importo E $ durata sono presi come input. Successivamente, la prima dichiarazione "if" controllerà $ l'importo è maggiore o uguale a 10000 o meno. Se restituisce vero, controllerà la condizione di nidificato 'if'tatement. il valore di $ durata è controllato dall'istruzione interna "if". Se $ durata è inferiore o uguale a 7, quindi il messaggio "otterrai il 20% di bolo" verrà archiviato altrimenti il messaggio "otterrai il 15% bonus" verrà archiviato nel $ output variabile. Se la prima condizione "if" restituisce false, verranno eseguite le dichiarazioni di altro. Nella seconda condizione nidificata "se", "otterrai il 10% di bonus" verrà stampato per restituire un valore reale e il messaggio "otterrai il 5% bonus" verrà stampata per restituire un valore falso.
cond5.sh
#!/Bin/Bash
Echo "inserisci l'importo delle vendite"
Leggi l'importo
Echo "Inserisci la durata del tempo"
Leggi la durata
if (($ importo> = 10000)); Poi
if (($ durata <= 7 )); then
output = "otterrai il bonus del 20%"
altro
output = "otterrai il 15% di bonus"
fi
altro
if (($ durata <= 10 )); then
output = "otterrai il 10% di bonus"
altro
output = "otterrai bonus del 5%"
fi
fi
Echo "$ output"
Produzione:
Esegui lo script.
$ bash cond5.sh
Lo script è testato da 12000 come importo e 5 come valore di durata prima. Secondo la condizione "se", il messaggio, "otterrai il bonus del 20% viene stampato. Successivamente, lo script viene testato da 9000 come importo e 12 come valori di durata e il messaggio "otterrai il bonus del 5%".
Uso della dichiarazione del caso
Sintassi:
caso in
pattern 1) comandi ;;
pattern n) comandi ;;
Esac
L'istruzione "Case" può essere utilizzata come alternativa all'istruzione "if". Crea un file denominato 'cond6.sh' e aggiungi il seguente codice per eseguire alcune semplici operazioni aritmetiche. Questo script leggerà tre valori dalla riga di comando e memorizzerà nelle variabili, $ n1, $ n2 e $ op. Qui, $ N1 e $ N2 vengono utilizzati per archiviare due valori numerici e $ op viene utilizzato per archiviare qualsiasi operatore aritmetico o simbolo. L'istruzione "Case" viene utilizzata per verificare la presenza di quattro simboli per eseguire qualsiasi operazione aritmetica. Quando $ op è '+', aggiungerà $ n1 e $ n2 e memorizzerà il risultato in $ risultato. Allo stesso modo, '-' e '/' simboli vengono utilizzati per eseguire l'operazione di sottrazione e di divisione. Il simbolo "x" viene usato qui per eseguire l'operazione di moltiplicazione. Per qualsiasi altro valore di $ op, stamperà un messaggio, "numero sbagliato di argomenti".
cond6.sh
#!/Bin/Bash
N1 = $ 1
op = $ 2
N2 = $ 3
Caso $ op in
'+')
((Risultato = $ N1+$ N2)) ;;
'-')
((Risultato = $ N1- $ N2)) ;;
'X')
((Risultato = $ n1*$ n2)) ;;
'/')
((Risultato = $ N1/$ N2)) ;;
*)
Echo "Numeri sbagliati di argomenti"
uscita 0 ;;
Esac
echo "$ n1 $ op $ n2 = $ risultato"
Produzione:
Esegui lo script con tre argomenti della riga di comando. Lo script viene eseguito per quattro volte usando quattro operatori, '+', '-', 'X' e '/'.
$ bash cond6.Sh 40 + 20
$ bash cond6.Sh 40 - 20
$ bash cond6.Sh 40 x 20
$ bash cond6.SH 40 /20
Il seguente output apparirà dopo aver eseguito lo script.
Esempio-7: dichiarazione "case" con un intervallo di valori
L'istruzione "Case" non può definire più condizioni con l'operatore logico come "if". Ma usando il tubo ('|'), è possibile assegnare più condizioni nell'istruzione 'caso'. Questo esempio mostra il valore di grado in base a segni come Esempio-4 Ma usando l'affermazione "caso" invece di "if". $ Nome E $ mari valori k sono dati dagli argomenti della riga di comando. La prima condizione è definita da '9 [0-9] | 100"Per la stampa" Grado - A+". Ciò significa che se il valore di $ mark è entro 90-99 o 100, la condizione sarà vera. La seconda condizione è '8 [0-9]"Per la stampa di" Grado - A "e questo corrisponderà $ Mark con qualsiasi valore dall'intervallo, 80-89. La terza e la quarta condizione funzionano come la seconda condizione. La quinta condizione è '0 | 1 [0-9] | 2 [0-9] | 3 [0-9] | 4 [0-9] | 5 [0-9]"per la stampa" grado - f "e corrisponderà $ Mark con 0 o qualsiasi numero nelle gamme 0-9, 10-19, 20-29, 30-39, 40-49 e 50-59.
cond7.sh
#!/Bin/Bash
# Stampa di grado in base al segno
nome = $ 1
Mark = $ 2
Caso $ Mark in
9 [0-9] | 100)
Grade = "A+" ;;
8 [0-9])
Grade = "A" ;;
7 [0-9])
Grade = "B+" ;;
6 [0-9])
Grade = "C+" ;;
0 | [0-9] | 1 [0-9] | 2 [0-9] | 3 [0-9] | 4 [0-9] | 5 [0-9])
Grade = "F" ;;
*)
eco "marchio non valido"
uscita 0 ;;
Esac
echo "$ nome ottenuto $ grade"
Produzione:
Esegui lo script con due argomenti della riga di comando. Lo script viene eseguito per quattro volte con valori di argomenti diversi.
$ bash cond7.Sh Lily 92
$ bash cond7.Sh Nahar 78
$ bash cond7.Sh John 500
$ bash cond7.Sh John Aa
Utili multipli delle dichiarazioni delle condizioni vengono tentate di spiegare in questo tutorial utilizzando esempi appropriati. Speranza, il lettore sarà in grado di utilizzare le dichiarazioni condizionali in Bash Script in modo efficiente dopo aver praticato correttamente gli esempi di cui sopra.
Per ulteriori informazioni, guarda il video!