Skip to main content

Guida per principianti A BASH - Comparing Things

Linux Tutorial for Beginners: Introduction to Linux Operating System (Giugno 2025)

Linux Tutorial for Beginners: Introduction to Linux Operating System (Giugno 2025)
Anonim
01 di 08

Guida per principianti A BASH - Comparing Things

Nella parte precedente del tutorial di BASH abbiamo esaminato le dichiarazioni condizionali.

Quella guida era molto lunga ma in realtà mostrava solo come controllare il flusso della logica. Questa guida mostra i diversi modi in cui è possibile confrontare le variabili.

L'immagine sopra mostra il primo esempio nella guida di questa settimana:

#! / Bin / bashnome1 = "gary"nome2 = "bob"if "$ nome1" = "$ nome2"poi echo "i nomi corrispondono"altro echo "i nomi non corrispondono"fi

Nello script di cui sopra ho definito due variabili chiamate name1 e name2 assegnandole i valori "gary" e "bob". Poiché le variabili sono contenute tra virgolette, vengono chiamate variabili stringa che diventano più rilevanti man mano che il tutorial prosegue.

Tutto lo script è confrontare il valore di $ nome1 e $ nome2 e se corrispondono alla stringa "i nomi corrispondono" e se non restituiscono la stringa "i nomi non corrispondono".

Le virgolette attorno alle variabili $ name1 e $ name2 sono importanti perché se il valore di ognuna di esse non è stato impostato, lo script funzionerà comunque.

Ad esempio, se $ name1 non è mai stato impostato, verrebbe confrontato "" con "bob". Senza le virgolette verrebbe lasciato con = "bob" che chiaramente fallisce.

Puoi anche usare la notazione! = Per definire non uguale a come segue:

if "$ nome1"! = "$ nome2" 02 di 08

Guida per principianti A BASH - Confronto stringhe

Nell'esempio sopra, il test confronta le stesse due stringhe e pone la domanda: prima arriva Bob nell'alfabeto?

Chiaramente la risposta è no.

Lo script introduce l'operatore minore di (<). Siccome l'operatore di meno che viene usato anche per il reindirizzamento, devi sfuggire con una barra () perché significhi meno di che sia il motivo per cui nello script sopra ho confrontato "$ nome1" <"$ nome2".

Il contrario di meno di è ovviamente maggiore di. Invece di usare <use >.

Per esempio

se "$ nome1" > "$ nome2" 03 di 08

Guida per principianti A BASH - Confronto stringhe

Se vuoi verificare se una variabile ha un valore puoi usare il seguente test:

se -n $ nome2

Nello script sopra ho verificato se $ name2 ha ricevuto un valore e se non ha il messaggio "Non c'è bob, non è mai apparso un bob".

04 di 08

Guida per principianti A BASH - Confronto stringhe

Nella slide precedente abbiamo trattato se una variabile è stata impostata o meno. A volte è possibile che sia stata impostata una variabile ma potrebbe non avere un valore.

Per esempio:

name1 = ""

Per verificare se una variabile ha un valore o meno (cioè ha una lunghezza pari a zero) usa -z come segue:

se -z $ nome1

Nello script sopra ho impostato $ name1 su una stringa di lunghezza zero e poi confrontato usando -z. Se $ nome1 è pari a zero, verrà visualizzato il messaggio "gary è uscito per la sera".

05 di 08

Guida per principianti A BASH - Confronto di numeri

Finora tutti i confronti sono stati per gli archi. Che dire del confronto dei numeri?

Lo script sopra mostra un esempio di confronto di due numeri:

#! / Bin / basha = 4b = 5se $ a = $ bpoi echo "4 = 5"altro echo "4 non uguale a 5"fi

Per impostare una variabile come numero basta impostarla senza virgolette. È quindi possibile confrontare i numeri con un segno di uguale.

Preferisco comunque utilizzare il seguente operatore per confrontare due numeri:

Se $ a -eq $ b 06 di 08

Guida per principianti A BASH - Confronto di numeri

Se si desidera confrontare se un numero è inferiore a un altro numero, è possibile utilizzare l'operatore minore di (<). Come con le stringhe, devi sfuggire all'operatore con una barra. ( <).

Un modo migliore per confrontare i numeri consiste nell'utilizzare la seguente notazione:

  • Meno di -lt
  • Meno o uguale a -le
  • Maggiore di -gt
  • Maggiore o uguale a -ge

Per esempio:

se $ a -lt $ bse $ a -le $ bse $ a -ge $ bse $ a -gt $ b 07 di 08

Guida per principianti A BASH - Confronto di numeri

Infine, per questa guida, se si desidera verificare se due numeri sono diversi, è possibile utilizzare gli operatori minore di e maggiore di quello (<>) o -ne come segue:

se $ a <> $ bse $ a -ne $ b 08 di 08

Guida per principianti A BASH - Comparison Operators - Summary

Se hai perso le prime tre parti di questa guida, le puoi trovare cliccando sui seguenti link:

  • Ciao mondo
  • Parametri di input
  • Condizioni e variabili

Nella prossima parte della guida tratterò l'aritmetica.