Come verificare se la stringa non è né vuota né spazio nello script di shell

Come verificare se la stringa non è né vuota né spazio nello script di shell
Negli script shell, è importante verificare se una stringa è vuota o contiene solo spazi prima di eseguire eventuali operazioni su di essa. Questo perché l'esecuzione di operazioni su una stringa vuota o solo spazio può portare a risultati inaspettati, questo articolo discuterà vari modi per verificare se una stringa non è né vuota né spazio nello script di shell.

Come verificare se la stringa non è né vuota né spazio nello script di shell

Per verificare se una stringa non è né vuota né contiene spazi in uno script di shell, è possibile utilizzare i seguenti due metodi:

  • Utilizzo di operatori -N e -Z
  • Usando espressioni regolari

Metodo 1: usando gli operatori -n e -z

L'operatore -n verifica se la lunghezza della stringa è maggiore di zero, mentre l'operatore -Z verifica se la lunghezza della stringa è zero. Possiamo usare questi operatori in combinazione per verificare se una stringa non è né vuota né spazio nello script di shell. Ecco un esempio:

#!/Bin/Bash
String = "Hello Linux"
if [-n "$ string"] && [-z "$ (echo $ string | tr -d '[: spazio:]')"]
Poi
echo "La stringa è vuota o contiene solo spazi."
altro
echo "La stringa non è né vuota né contiene solo spazi."
fi

In questo esempio, controlliamo prima se la lunghezza della stringa è maggiore di zero usando l'operatore -n. Quindi, rimuoviamo tutti gli spazi dalla stringa usando il tr comanda e controlla se la lunghezza della stringa risultante è zero utilizzando l'operatore -Z. Se entrambe le condizioni sono vere, possiamo concludere che la stringa non è né vuota né contiene solo spazi.

Metodo 2: usando espressioni regolari

Possiamo anche usare espressioni regolari per verificare se una stringa non è né vuota né spazio nello script shell. Ecco un esempio:

#!/Bin/Bash
String = "Hello Linux"
if [["$ string" = ~ ^[[: spazio:]]*$]]
Poi
echo "La stringa è vuota o contiene solo spazi."
altro
echo "La stringa non è né vuota né contiene solo spazi."
fi

In questo esempio, utilizziamo l'operatore = ~ per abbinare la stringa contro l'espressione regolare ^[[: spazio:]]*$, che corrisponde a zero o più spazi all'inizio e alla fine della stringa. Se la stringa corrisponde a questa espressione regolare, possiamo concludere che è vuota o contiene solo spazi.

Conclusione

Negli script shell, è importante verificare se una stringa non è né vuota né contiene solo spazi prima di eseguire operazioni su di essa. Abbiamo discusso di due metodi per eseguire questo controllo: usando gli operatori -n/-z e utilizzando espressioni regolari. Utilizzando questi metodi, possiamo garantire che i nostri script shell maneggano correttamente le stringhe ed evitare errori inaspettati.