Se e altro condizionhi nello script ZSH

Se e altro condizionhi nello script ZSH
Il processo decisionale, chiamato anche condizionhi, è un elemento fondamentale nella programmazione. In questo tutorial, discuteremo di come implementare i condizionali nei nostri script usando la shell ZSH.

È bene notare che poiché ZSH è costruito sopra bash, la sintassi e la funzionalità sono simili per gli script costruiti per Bash o ZSH Shell.

If Dichiarazione

Il modo più elementare per implementare la logica condizionale a uno script di shell è usando un'istruzione IF. La sintassi generale per un'istruzione IF in ZSH è di seguito:

#!/usr/bin/zsh
se condizione
Poi
// Esegui comandi
fi

Per implementare un'istruzione IF, iniziamo chiamando la parola chiave IF. Passiamo quindi l'espressione condizionale per valutare. L'espressione condizionale deve restituire un valore booleano.

Dopo che l'espressione condizionale arriva alla parola chiave e al blocco FI, all'interno di questi blocchi, passiamo i comandi da eseguire se l'espressione condizionale valuta a True.

Se l'espressione condizionale passata valuta a un falso booleano, il blocco di comandi all'interno del blocco FI viene ignorato e le uscite condizionali.

Sebbene non richiesto, si consiglia di rientrare i blocchi di codice per leggibilità e manutenzione.

Considera l'esempio If Dichiarazione di seguito:

Condizionali di tocco.condizionati sh && vim.sh
#!/usr/bin/zsh
if [[100 -GT 50]]
Poi
eco "100 è maggiore di 50"
fi

Salva il file e chiudi.

Quindi, rendere eseguibile il file utilizzando il comando chmod come:

condizionali CHMOD +X.sh

Infine, esegui lo script come:

./condizionali.sh

Lo script eseguirà il blocco if e verificherà se 100 è maggiore di 50. Se è vero, eseguirà il comando echo e uscirà.

Di seguito è riportato un output di esempio:

$ ./condizionale.sh
100 è maggiore di 50

Se ... Else affermazione

Una versione più evoluta dell'istruzione IF è l'istruzione IF ... Funziona come l'istruzione if ma aggiunge un manico se l'espressione condizionale valuta a false.

Di seguito è riportata la sintassi generale per l'istruzione If ... Else:

#!/usr/bin/zsh
se condizionale
Poi
// comanda da eseguire se vero
altro
// comanda da eseguire se false
fi

Come visto dall'esempio sopra, se l'espressione condizionale si valuta al vero, il blocco tra le dichiarazioni di allora e altro. Tuttavia, se falso, il blocco altro.

Considera l'esempio mostrato di seguito:

#!/usr/bin/zsh
echo -n "Immettere un numero:"
Leggi num
if [[$ num -gt 50]]
Poi
echo "$ num è maggiore di 50"
altro
echo "$ num non è maggiore di 50"
fi

Nello script di esempio, chiediamo all'utente di inserire un numero. Se il numero è maggiore di 50, facciamo eco che il numero è maggiore di 50. Se false, facciamo eco al numero non è maggiore di 50.

Di seguito è riportato un output di esempio:

$ ./condizionale.sh
Immettere un numero: 10
10 non è maggiore di 50
$ ./condizionale.sh
Immettere un numero: 80
80 è maggiore di 50

Se ... Elif ... Else dichiarazioni

In alcuni casi, potresti voler testare più condizioni in un blocco. Per implementare tale logica, possiamo usare l'istruzione if ... elif ...

In un'istruzione If ... Elif ... else, aggiungiamo più espressioni condizionali in cui solo una condizione valuta True. Se la prima condizione è vera, eseguire il suo blocco; In caso contrario, controlla il secondo e continua fino a quando non vengono controllate tutte le condizioni.

La sintassi per il blocco If ... Elif è:

#!/usr/bin/zsh
Se condizione1
Poi
// block1
Elif Condition2
Poi
// block2
Elif Conditionn
Poi
// blockn
altro
// Se tutte le condizioni valutano a false
fi

Le condizioni sono valutate in sequenza. Se uno valuta su True, il suo blocco di codice viene eseguito. Tuttavia, se nessuna delle condizioni è vera, il blocco altro viene eseguito.

Il blocco altro è facoltativo ma consigliato per gestire una situazione in cui nessuna condizione è vera.

Ecco uno script di esempio:

if [[$ num -eq 10]]
Poi
echo "numero = $ num"
elif [[$ num -eq 20]]
Poi
echo "numero = $ num"
elif [[$ num -eq 30]]
Poi
echo "numero = $ num"
altro
eco "Il numero non è né 10, 20 né 30"
echo "numero = $ num"
fi

Lo script sopra implementa un blocco Elif se il numero immesso è 10, 20 o 30. In caso contrario, il altro blocca per gestire la condizione come mostrato nell'esecuzione seguente:

./condizionale.sh
Immettere un numero: 10
Numero = 10
Immettere un numero: 20
Numero = 20
Immettere un numero: 30
Numero = 30
Immettere un numero: 51
Il numero non è né 10, 20 né 30
Numero = 51

Puoi avere tutte le dichiarazioni Elif che ritieni opportuno. Tuttavia, se si verificano tali scenari, prendi in considerazione l'implementazione di un blocco del caso.

Operatori condizionali

Negli esempi sopra, abbiamo implementato operatori condizionali come -eq (uguali a) e -gt (maggiore di). ZSH supporta altri operatori condizionali come:

  • a -eq b - Vero se a è numericamente uguale a b
  • a -gt b - Vero se a è numericamente maggiore di b
  • a -lt b - Vero se a è numericamente inferiore a b
  • a -ne b - Il vero è A non è numericamente uguale a B
  • a -le b - Vero se a è numericamente inferiore o uguale a b
  • a -ge b - Vero se a è numericamente maggiore o uguale a b
  • UN != b - Vero se la stringa a non è uguale alla stringa b
  • a = b - Vero se la stringa a è uguale alla stringa b
  • -Z String - Vero se la lunghezza della stringa è zero
  • -N String - Vero se la lunghezza della stringa è diversa da zero
  • -un file - Vero se il file esiste
  • -file h - Vero se il file esiste ed è un collegamento simbolico
  • -F del file - Vero se il file esiste ed è un file normale (non una directory o un file speciale)
  • -file d - Vero se il file esiste ed è una directory
  • -e file - Vero se il file esiste indipendentemente dal tipo
  • -file r - Vero se il file esiste ed è leggibile dal processo corrente
  • -W file - Vero se il file esiste ed è scrittabile dal processo corrente
  • -x file - Vero se il file esiste ed è eseguibile dal processo corrente
  • -F del file - Vero se il file esiste e ha set di bit set
  • -S file - Vero se il file esiste e le dimensioni sono maggiori di zero
  • -u - Vero se il file esiste e ha set di bit setuid
  • -o file - Vero se il file esiste ed è di proprietà dell'ID corrente
  • ! Exp - Vero se l'espressione è falsa
  • a && b - Vero se sia a e b sono veri
  • A || B - Vero se a o b è vero

Quanto sopra sono esempi di espressioni condizionali che puoi usare negli script ZSH. Dai un'occhiata alla documentazione per saperne di più.

Conclusione

Questo tutorial ti ha mostrato come implementare la logica condizionale nei nostri script ZSH utilizzando le istruzioni IF. Sentiti libero di dare un'occhiata alla documentazione di script ZSH per saperne di più.

Grazie per aver letto!