È 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:
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!