- Uso della dichiarazione 'Se'.
- Utilizzo della dichiarazione “If-Else”.
- Utilizzo della dichiarazione “If-Elif-Else”.
- Utilizzo dell'istruzione 'If' per controllare una variabile vuota
- Utilizzo dell'istruzione “If” con operatore logico
- Utilizzo delle istruzioni “If” nidificate
- Utilizzo dell'istruzione 'If' per verificare l'esistenza del file
- Utilizzo dell'istruzione 'If' per verificare l'esistenza della directory
- Utilizzo dell'istruzione 'If' con Regex
- Utilizzo della dichiarazione 'Caso'.
Uso della dichiarazione 'Se'.
Questo esempio mostra il semplice utilizzo dell'istruzione 'if' in Bash. È possibile utilizzare sei tipi di operatori di confronto per confrontare i valori numerici in Bash. Questi sono '-eq' (uguale), '-ne' (non uguale), '-le' (minore di uguale), '-ge' (maggiore di uguale), '-lt' (minore di) e ' -gt” (maggiore di). Gli usi di '-lt' e '-eq' sono mostrati nello script seguente se il numero è inferiore a 99 o non è stato controllato utilizzando l'operatore '-lt'. Il numero è pari o dispari e viene controllato dall'operatore “-eq”.
#!/bin/bash
#Assegnare un valore numerico
( ( numero = cinquanta ) )
#Controlla il valore numerico utilizzando l'istruzione 'if'
Se [ $numero -lt 99 ]
Poi
eco 'Il numero è valido.'
Essere
#Controlla se il numero è pari o meno
Se [ $ ( ( $numero % 2 ) ) -eq 0 ]
Poi
eco 'Il numero è pari.'
Essere
Produzione :
Dopo l'esecuzione dello script precedente viene visualizzato il seguente output:
Utilizzo della dichiarazione “If-Else”.
L'uso dell'istruzione 'if-else' è mostrato nello script seguente. Un valore stringa viene preso dall'utente e controlla se il valore è 'BLU' o meno utilizzando l'istruzione 'if-else'.
#!/bin/bash
#Prendi un valore stringa dall'utente
Leggere -P 'Inserisci il tuo colore preferito:' colore
#Controlla il valore della stringa utilizzando l'istruzione 'if-else'
Se [ ${colore^^} == 'BLU' ]
Poi
eco 'Bene, il colore blu è disponibile.'
altro
eco ' $colore Non è disponibile.'
Essere
Produzione :
Il seguente output viene visualizzato dopo l'esecuzione dello script precedente se si prende 'rosso' come input:
Il seguente output viene visualizzato dopo l'esecuzione dello script precedente se come input viene preso 'blu':
Utilizzo della dichiarazione “If-Elif-Else”.
L'uso dell'istruzione 'if-elif-else' è mostrato nello script seguente. Un numero viene preso dall'utente e controllato con valori diversi finché non viene trovata una corrispondenza. Se viene trovata una corrispondenza, viene stampato il messaggio corrispondente. Se non viene trovata alcuna corrispondenza, viene stampato il messaggio predefinito.
#!/bin/bash#Prendi il valore ID dall'utente
Leggere -P 'Inserisci il tuo numero di serie:' seriale
#Controlla il valore immesso utilizzando l'istruzione 'if-elif-else'
Se [ $seriale == '4523' ]
Poi
eco 'Sei selezionato nel gruppo A.'
Elif [ $seriale == '8723' ]
Poi
eco 'Sei selezionato nel girone B.'
Elif [ $seriale == '3412' ]
Poi
eco 'Sei selezionato nel girone C.'
altro
eco 'Non sei selezionato' .
Essere
Produzione:
Dopo aver eseguito lo script con il valore 8723 viene visualizzato il seguente output:
Dopo aver eseguito lo script con il valore 9078 viene visualizzato il seguente output:
Utilizzo dell'istruzione 'If' per controllare una variabile vuota
Il metodo per verificare se una variabile è vuota senza utilizzare un'istruzione 'if' è mostrato nello script seguente. L'opzione '-z' viene utilizzata nell'istruzione 'if' per eseguire questa attività.
#!/bin/bash#Prendi il valore ID dall'utente
Leggere -P 'Inserisci il tuo numero di serie:' seriale
#Controlla se la variabile è vuota o meno
Se [ ! -Con $seriale ]
Poi
#Controlla il valore immesso utilizzando l'istruzione 'if-elif-else'
Se [ $seriale == '690' ]
Poi
eco 'Sei selezionato nella squadra-1.'
Elif [ $seriale == '450' ]
Poi
eco 'Sei selezionato nella squadra-2.'
altro
eco 'Non sei selezionato' .
Essere
altro
eco 'Non viene fornito alcun numero di serie.'
Essere
Produzione :
Dopo aver eseguito lo script con il valore 690 viene visualizzato il seguente output:
Il seguente output viene visualizzato dopo l'esecuzione dello script se non viene preso alcun valore di input:
Utilizzo dell'istruzione “If” con operatori logici
Nell'istruzione condizionale Bash possono essere utilizzati tre tipi di operatori logici. Questi sono OR logico (||), AND logico (&&) e NOT logico (!). Un valore di codice viene preso dall'utente. Se il valore di input non è vuoto, il valore viene controllato con due valori di codice utilizzando l'OR logico. Se il valore corrisponde a qualsiasi codice, viene stampato il messaggio corrispondente. Se non viene trovato alcun codice corrispondente, viene stampato il messaggio predefinito.
#!/bin/bash#Prendi il codice del corso dall'utente
Leggere -P 'Inserisci il codice del corso:' codice
#Controlla se la variabile è vuota o meno
Se [ ! -Con $codice ]
Poi
#Controlla il valore immesso utilizzando l'istruzione 'if-elif-else'
Se [ [ $codice == 'CSE-106' || $codice == 'CSE-108' ] ]
Poi
eco 'Corso CSE.'
Elif [ [ $codice == 'BBA-203' || $codice == 'BBA-202' ] ]
Poi
eco 'Corso BBA.'
altro
eco 'Codice corso non valido.'
Essere
altro
eco 'Non viene fornito alcun codice del corso.'
Essere
Produzione :
Il seguente output viene visualizzato dopo aver eseguito lo script con il valore di input 'CSE-108':
Il seguente output viene visualizzato dopo aver eseguito lo script con il valore di input 'BBA-56':
Utilizzo delle istruzioni “If” nidificate
Quando una condizione 'if' viene utilizzata all'interno di un'altra condizione 'if', viene chiamata istruzione 'if' nidificata. Il metodo per utilizzare l''if' annidato è mostrato nello script seguente. Dall'utente vengono presi due valori di contrassegno. Se i valori di input non sono vuoti, la prima condizione 'se' controlla se il valore di '$teoria' è maggiore o uguale a 60 oppure no. Se la prima condizione “if” restituisce “true”, la seconda condizione “if” controlla se il valore di “$lab” è maggiore o uguale a 50 oppure no. Se anche la seconda condizione “se” restituisce “vero”, viene stampato un messaggio di successo. Altrimenti viene stampato un messaggio di errore.
#!/bin/bash#Prendi il voto di teoria
Leggere -P 'Inserisci il voto di teoria:' teoria
#Prendi il voto di laboratorio
Leggere -P 'Inserisci il voto di laboratorio:' laboratorio
#Controlla se le variabili sono vuote o meno
Se [ [ ! -Con $teoria && ! -Con $laboratorio ] ]
Poi
#Controlla i valori di input utilizzando un'istruzione 'if' nidificata
Se [ $teoria -ge 60 ]
Poi
Se [ $laboratorio -ge cinquanta ]
Poi
eco 'Sei passato.'
altro
eco 'Hai fallito.'
Essere
altro
eco 'Hai fallito.'
Essere
altro
eco 'Il voto di teoria o di laboratorio è vuoto.'
Essere
Produzione :
Se entrambi o uno dei valori di input sono vuoti, viene visualizzato il seguente output:
Il seguente risultato appare se si prende 78 come voto di teoria e 45 come voto di laboratorio. Qui, la seconda condizione “se” restituisce “falso”:
Il seguente risultato appare se si prende 67 come voto di teoria e 56 come voto di laboratorio. Qui, entrambe le condizioni “se” restituiscono “vero”:
Il seguente risultato appare se si prende 50 come voto di teoria e 80 come voto di laboratorio. Qui, la prima condizione “se” restituisce “falso”:
Utilizzo dell'istruzione 'If' per verificare l'esistenza del file
L'esistenza del file può essere verificata dallo script bash in due modi. Uno sta usando l'operatore '-f' con parentesi '[]'. Un altro sta usando il comando “test” e l’operatore “-f”. Viene preso un nome file e viene verificata l'esistenza del file utilizzando la condizione 'if' con l'operatore '-f'. Quindi, viene preso un altro nome file e viene verificata l'esistenza del file utilizzando l'istruzione 'if' con il comando 'test' e l'operatore '-f'.
#!/bin/bash#Prendi il nome del file
Leggere -P 'Inserisci un nome file:' fn1
#Verifica se il file esiste o meno senza utilizzare `test`
Se [ -F $fn1 ]
Poi
eco ' $fn1 il file esiste.'
altro
eco ' $fn1 il file non esiste.'
Essere
#Aggiungi nuova riga
eco
#Prendi un altro nome file
Leggere -P 'Inserisci un altro nome file:' fn2
#Verifica se il file esiste o meno utilizzando `test`
Se test -F $fn2 ; Poi
eco ' $fn2 il file esiste.'
#Controlla se il file è vuoto o meno utilizzando `test`
Se test -Con $fn2 ; Poi
eco ' $fn2 il file è vuoto.'
altro
eco ' $fn2 il file non è vuoto.'
Essere
altro
eco ' $fn2 il file non esiste.'
Essere
Produzione :
Il seguente output viene visualizzato dopo aver eseguito lo script prendendo 'test.txt' e 'testing.txt' come nomi di file. Secondo l'output, entrambi i file esistono nella posizione corrente e il file 'testing.txt' è vuoto:
Il seguente output viene visualizzato dopo aver eseguito lo script prendendo 'f1.txt' e 'test.txt' come nomi di file. Secondo l'output, il file 'f1.txt' non esiste nella posizione corrente e il file 'test.txt' non è vuoto:
Utilizzo dell'istruzione 'If' per verificare l'esistenza della directory
L'esistenza della directory può essere verificata dallo script Bash in due modi come il file. Uno sta usando l'operatore “-d” con parentesi “[]”. Un altro sta usando il comando “test” e l’operatore “-d”. Viene preso un nome di directory e viene verificata l'esistenza della directory utilizzando la condizione 'if' con l'operatore '-d'. Quindi, viene preso un altro nome di directory e viene verificata l'esistenza del file utilizzando l'istruzione 'if' con il comando 'test' e l'operatore '-d'.
#!/bin/bash#Prendi un nome di directory
Leggere -P 'Inserisci un nome di directory:' tu1
#Verifica se la directory esiste o meno senza utilizzare `test`
Se [ -D $dir1 ]
Poi
eco ' $dir1 la directory esiste.'
altro
eco ' $dir1 la directory non esiste.'
Essere
#Aggiungi nuova riga
eco
#Prendi un altro nome di directory
Leggere -P 'Inserisci un altro nome di directory:' dir2
#Verifica se il file esiste o meno utilizzando `test`
Se test -D $dir2
Poi
eco ' $dir2 la directory esiste.'
altro
eco ' $dir2 la directory non esiste.'
Essere
Produzione :
Il seguente output viene visualizzato dopo aver eseguito lo script con i nomi delle directory 'temp' e 'files'. Secondo l'output, entrambe le directory esistono nella posizione corrente. Quindi, viene eseguito il comando “ls” per verificare il contenuto delle directory:
Il seguente output viene visualizzato dopo aver eseguito lo script con i nomi di directory 'testing' e 'new'. Secondo l'output, entrambe le directory non esistono nella posizione corrente. Quindi, l'output del comando 'ls' mostra che entrambe le directory non esistono:
Utilizzo dell'istruzione 'If' con Regex
Lo script seguente mostra il metodo per convalidare i dati di input utilizzando un'istruzione 'if' con la regex. Qui, due valori di input vengono presi dall'utente e memorizzati nelle variabili '$bookname' e '$bookprice'. La condizione 'if' viene utilizzata nello script per verificare che la variabile '$bookname' contenga tutti i caratteri alfabetici e '$bookprice' contenga un numero.
#!/bin/bash#Prendi il nome e il prezzo del libro dall'utente
eco -N 'Inserisci il nome del libro:'
Leggere nome del libro
eco -N 'Inserisci il prezzo del libro:'
Leggere prezzo del libro
#Verifica che il nome del libro contenga solo l'alfabeto
Se ! [ [ ' $nomelibro ' =~ [ A-Za-z ] ] ] ; Poi
eco 'Il nome del libro non è valido.'
altro
eco 'Il nome del libro è valido.'
Essere
#Verifica che il prezzo del libro contenga solo cifre
Se ! [ [ ' $prezzo del libro ' =~ [ 0 - 9 ] ] ] ; Poi
eco 'Il prezzo del libro può contenere solo cifre.'
altro
eco 'Il prezzo del libro è valido.'
Essere
Produzione :
Il seguente output appare dopo aver eseguito lo script con i valori di input di 'Bash Programming' come nome del libro e 78 come prezzo del libro:
Dopo aver eseguito lo script, viene visualizzato il seguente output con i valori di input 90 come nome del libro e 'Bash' come prezzo del libro:
Utilizzo della dichiarazione 'Caso'.
L'istruzione 'case' è l'alternativa all'istruzione 'if-elif-else', ma tutte le attività dell'istruzione 'if-elif-else' non possono essere eseguite utilizzando l'istruzione 'case'. Il semplice utilizzo dell'istruzione 'case' è mostrato nello script seguente. L'utente riceve un valore numerico come valore del mese corrente. Quindi, viene stampato il mese corrispondente se viene trovato un valore corrispondente nell'istruzione 'case'. Altrimenti, viene stampato il messaggio predefinito.
#!/bin/bash#Prendi il valore del mese corrente in numero
Leggere -P 'Inserisci il mese di oggi in numero:' b_mese
#Stampa il testo prima di stampare il nome del mese
eco -N 'Il nome del mese corrente è '
#Trova e stampa il nome del mese corrispondente in base all'input
caso $b_mese In
1 | 01 ) eco 'Gennaio.' ;;
2 | 02 ) eco 'Febbraio.' ;;
3 | 03 ) eco 'Marzo.' ;;
4 | 04 ) eco 'Aprile.' ;;
5 | 05 ) eco 'Maggio.' ;;
6 | 06 ) eco 'Giugno.' ;;
7 | 07 ) eco 'Luglio.' ;;
8 | 08 ) eco 'Agosto.' ;;
9 | 09 ) eco 'Settembre.' ;;
10 ) eco 'Ottobre.' ;;
undici ) eco 'Novembre.' ;;
12 ) eco 'Dicembre.' ;;
* ) eco 'non trovato.' ;;
esac
Produzione :
Dopo aver eseguito lo script con il valore 6 viene visualizzato il seguente output:
Dopo aver eseguito lo script con il valore 09 viene visualizzato il seguente output:
Dopo aver eseguito lo script con il valore 14 viene visualizzato il seguente output:
Conclusione
Nei 10 esempi di questo tutorial vengono mostrati diversi usi della logica condizionale utilizzando le istruzioni 'if' e 'case'. Il concetto di utilizzo della logica condizionale in Bash verrà chiarito ai nuovi utenti Bash dopo aver letto questo tutorial.