GNU/Linux >> Linux Esercitazione >  >> Linux

Come confrontare le stringhe negli script di Bash Shell

La gestione delle stringhe fa parte di qualsiasi linguaggio di programmazione. Lo scripting della shell Bash non è diverso. Anche la sintassi è praticamente la stessa.

In questo breve tutorial, ti mostrerò come confrontare le stringhe negli script di shell Bash.

Confronto tra stringhe Bash

Ecco come confrontare le stringhe in Bash.

if [ "$string1" == "$string2" ]

Puoi anche usare una stringa direttamente invece di usare una variabile.

if [ "$string1" == "This is my string" ]

Lascia che te lo mostri con esempi appropriati.

Controlla se due stringhe sono uguali

Se vuoi verificare se due stringhe sono uguali, ecco un esempio:

#!/bin/bash
string1="MyString"
string2="MyString"
if [ "$string1" == "$string2" ]
then
    echo "Equal Strings"
else
    echo "Strings not equal"
fi

Suggerimento:prestare attenzione agli spazi

Deve esserci uno spazio tra [ e il nome della variabile e l'operatore di uguaglianza ==. Se perdi uno degli spazi qui, vedrai un errore come "operatore unario previsto" o mancante "]".

Controlla se le stringhe non sono uguali in Bash

Invece di controllare la qualità, facciamo il contrario e controlliamo la disuguaglianza. Bash fornisce anche l'operatore di negazione in modo da poter utilizzare facilmente la condizione "se non uguale" negli script di shell.

if [ "$string1" != "Not MyString" ]

L'esempio completo si presenta così:

#!/bin/bash
string1="MyString"

if [ "$string1" != "Not MyString" ]
then
    echo "Not Equal Strings"
else
    echo "Strings equal"
fi

Verifica se la stringa è nulla o vuota in Bash

A differenza di altri linguaggi come C++, in Bash puoi controllare se la stringa è nulla o vuota con un solo comando:

if [ -z "$VAR" ]

Il -z controlla effettivamente se la lunghezza della variabile è zero o meno. Se la variabile non è impostata o se è vuota (uguale a “”), la lunghezza sarà zero e quindi la condizione tornerà true.

Un esempio completo può essere visto qui:

#!/bin/bash
string1=
string2=""
if [ -z "$string1" ]
then
    echo "Null Strings"
fi
if [ -z "$string2"]
then
    echo "Empty String"
fi

Nota sull'uso della parentesi singola "[]" e della doppia parentesi "[[]]" negli script bash

Puoi anche usare l'istruzione if con doppie parentesi come questa:

if [[ "$string1" == "My String" ]]

La parentesi unica è la vecchia convenzione Posix e presenta alcune carenze. Se non usi le virgolette intorno alle variabili e la variabile non è definita, scomparirà dal codice e ciò comporterà un errore di sintassi.

if [ $string1 == "My String" ]

Se la variabile $string1 è vuota o non è definita nel codice precedente, quella riga diventerà equivalente a

if [  == "$string2" ]

Conclusione

Spero che questo breve tutorial ti abbia aiutato a confrontare le stringhe negli script della shell bash. Consiglio di leggere anche un altro breve tutorial sul comando bash sleep.

Se hai domande o suggerimenti, sentiti libero di lasciare un commento qui sotto.


Linux
  1. Come confrontare numeri e stringhe nello script della shell di Linux

  2. Come fa Bash a sapere come viene invocato?

  3. Come analizzare Json con lo script della shell in Linux?

  4. Come cambiare Cron Shell (sh To Bash)?

  5. Come fare eco a una nuova riga negli script di Bash Shell

Come utilizzare il comando Date negli script Bash in Linux

Script di shell per principianti - Come scrivere script Bash in Linux

Come utilizzare il comando Declare in Linux Bash Shell

Come installare Linux Bash Shell su Windows 10

Come verificare se esiste un file o una directory in Bash Shell

Bash Scripting:come generare e formattare il testo su Linux Shell