L'istruzione "if" viene utilizzata in bash per ramificazione condizionale come in altri linguaggi di programmazione. L'istruzione "if" può essere utilizzata per verificare le diverse condizioni in bash. I diversi tipi di operatori di confronto, operatori logici e opzioni vengono utilizzati con l'istruzione "if" per il test. Gli usi dell'opzione "-z" e "-n" per testare i valori della stringa usando l'istruzione "if" in bash sono mostrati in questo tutorial.
Usando l'istruzione "if -z"
A volte, è necessario verificare se una variabile di stringa è vuota o se contiene una stringa di lunghezza zero. Ci sono molte opzioni in Bash per svolgere questo compito. L'uso dell'opzione "-z" con l'istruzione "if" è uno dei modi per verificare se una variabile è vuota o meno. Gli usi dell'opzione "if -z" sono mostrati nella parte successiva del tutorial.
Esempio 1: controllo dell'istruzione "if -z" usando "[]"
Crea un file bash con il seguente script in cui viene mostrato l'uso dell'istruzione "if -z" con "[]". Due input vengono prelevati dall'utente. Se uno qualsiasi dei valori di input è vuoto, viene stampato un messaggio di errore. Altrimenti, la somma dei due valori di input viene calcolata e stampata.
#!/Bin/Bash
#READ il primo numero
Leggi -p "Immettere il primo numero:" N1
#READ il secondo numero
Leggi -p "Immettere il secondo numero:" N2
#Check, qualsiasi input è vuoto o no
if [[-z "$ n1" || -Z "$ n2"]
Poi
#Print il messaggio di errore
echo "Il primo o il secondo numero è vuoto."
altro
#Calcula la somma
Sum = $ (($ N1+$ N2))
#Print il valore di somma
Echo "La somma di $ n1 e $ n2 è $ somma."
fi
Produzione:
Viene visualizzato il seguente output se lo script viene eseguito senza alcun argomento:
Viene visualizzato il seguente output se lo script viene eseguito con un argomento:
Viene visualizzato il seguente output se lo script viene eseguito con due argomenti:
Esempio 2: controllo dell'istruzione "if -z" con il comando "test"
Crea un file bash con il seguente script in cui l'uso dell'istruzione "if -z" con "test"Il comando viene mostrato. Un input viene preso dall'utente che deve essere numerico. Se il valore di input è vuoto, viene stampato un messaggio di errore. Se il valore di input non è vuoto ma non contiene un valore numerico, viene stampato un altro messaggio di errore. Se un numero intero viene preso come input, il valore di input viene stampato.
#!/Bin/Bash
#Leggi il valore di età
Leggi -p "Inserisci la tua età:" età
#Check se il valore di input è vuoto o meno
Se test -Z "$ age"
Poi
#Print il messaggio di errore per vuoto
echo "Il valore di input è vuoto."
Uscita
fi
#Check se il valore di input è un numero o meno
Se ! [[$ age = ~ ^[0-9]+$]]; Poi
#Print Il messaggio di errore per dati non numerici
eco "Il valore di età deve essere un numero."
altro
#Print il valore di input
echo "Hai $ Age Years."
fi
Produzione:
I seguenti apePar di output se lo script viene eseguito con il valore di input numerico:
Viene visualizzato il seguente output se lo script viene eseguito con il valore di input della stringa:
Usando l'istruzione "if -n"
A volte, è necessario verificare se una variabile di stringa non è vuota o se contiene un valore di stringa superiore a zero. Ci sono molte opzioni in Bash per svolgere questo compito. L'uso dell'opzione "-n" con l'istruzione "if" è uno dei modi per verificare se una variabile non è vuota o meno. Gli usi dell'opzione "if -n" sono mostrati nella parte successiva del tutorial.
Esempio 1: controllo dell'istruzione "if -n" usando "[]"
Crea un file bash con il seguente script in cui viene mostrato l'uso dell'istruzione "if -n" con "[]". Un valore di input viene tratto dall'utente. Se il valore di input è vuoto, viene stampato un messaggio di errore. Altrimenti, il valore dell'input viene stampato.
#!/Bin/Bash
#Leggi il nome del libro
Leggi -p "Inserisci il nome del libro:" libro
#Check Se l'ingresso è diverso da zero o no
Se ! [-n "$ book"]
Poi
#Print il messaggio di errore
echo "Il nome del libro non può essere vuoto."
altro
#Print il valore di input
echo "Il nome del libro è $ book."
fi
Produzione:
Viene visualizzato il seguente output se lo script viene eseguito con qualsiasi valore di input:
Viene visualizzato il seguente output se lo script viene eseguito con un valore di input stringa:
Esempio 2: controllo dell'istruzione "if -n" con il comando "test"
Crea un file bash con il seguente script in cui viene mostrato l'uso dell'istruzione "if -n" con il comando "test". Il primo input è una stringa e il secondo input è numerico. Se entrambi i valori di input non sono vuoti, viene stampato un messaggio di errore. Se il secondo valore di input non è numerico, altrimenti i valori di input vengono stampati.
#!/Bin/Bash
#Leggi il nome del libro
Leggi -p "Inserisci il nome del libro:" libro
#Leggi il nome del libro
Leggi -p "Inserisci il prezzo del libro:" Prezzo
#Check se l'input è diverso da zero o no
if test -n "$ book" && test -n "$ price"
Poi
#Check se il valore di input è un numero o meno
Se ! [[$ price = ~ ^[0-9]+$]]; Poi
#Print Il messaggio di errore per dati non numerici
eco "Il valore del prezzo deve essere un numero."
altro
#Print i valori di input
echo "Il nome del libro è $ book."
Echo "Il prezzo del libro è $ prezzo."
fi
altro
#Print il messaggio di errore
Echo "Il nome o il prezzo del libro non possono essere vuoti."
fi
Produzione:
Viene visualizzato il seguente output se lo script viene eseguito con due valori di input vuoti:
Viene visualizzato il seguente output se lo script viene eseguito con un valore di input vuoto:
Viene visualizzato il seguente output se lo script viene eseguito con due valori di input validi non vuoti:
Viene visualizzato il seguente output se lo script viene eseguito con due valori non vuoti e un valore di prezzo non valido:
Conclusione
Gli usi delle dichiarazioni "if -z" e "if -n" sono spiegati in questo tutorial usando più esempi per aiutare gli utenti bash ad applicare correttamente queste dichiarazioni nel loro script.