Come fare un ciclo per lo script ZSH

Come fare un ciclo per lo script ZSH
Ogni Sysadmin dovrebbe sapere come implementare gli script per automatizzare il loro flusso di lavoro. Sebbene abbiamo molti strumenti di automazione come Ansible, lo scripting rimane uno strumento fondamentale per automatizzare le attività nel mondo di Linux.

Questo tutorial esaminerà i loop, un concetto fondamentale nello scripting e nella programmazione in generale. Ci concentreremo specificamente su come funzionano per i loop.

Per la struttura di base del ciclo

Prima di script esempi per i loop, discutiamo della struttura. Per i loop adottano la sintassi generale:

per In
Fare

Fatto

È possibile passare l'elenco di elementi come un array, una serie di letterali a stringa (separati da spazi) o una serie di numeri.

Consideriamo ora alcuni esempi e illustriamo come funzionano per i loop.

Esempio 1

Considera l'esempio mostrato di seguito. Loop su un elenco di valori di stringa e stampiamo la stringa corrente nel loop.

#!/usr/bin/zsh
per un drink in acqua di vino da caffè da tè
Fare
echo "bevanda: $ bevande"
Fatto

Una volta eseguito lo script, dovresti vedere ogni elemento nell'elenco stampato, come mostrato nell'esempio seguente:

$ ./per.sh
Bere acqua
Bere tè
Bere caffè
Bere vino

Esempio 2

È inoltre possibile specificare il valore dell'elenco nel ciclo for come sequenza di numeri. Lo fai impostando i valori di avvio e finale. La sintassi è sotto:

Start ... end

Prendi l'esempio per loop di seguito per i valori del ciclo 10 volte.

#!/usr/bin/zsh
Per i in 1… 10
Fare
Echo "Numero: $ i"
Fatto

Dovresti ottenere tutti i numeri tra 1 e 10 stampati al terminale.

Numero 1
Numero 2
..
Numero: 8
Numero 9
Numero: 10

Esempio 3

In alcuni casi, quando si utilizza l'intervallo di numeri, è necessario saltare i valori di un intervallo specifico. Ad esempio, per stampare i numeri pari tra 10 e 20, dovrai utilizzare un intervallo di 2.

Puoi farlo specificando l'incremento come terzo argomento dei gamme numerici.

La sintassi è:

Start ... End ... Increment

Di seguito è riportato un codice di esempio:

#!/usr/bin/zsh
Per I in 10… 20… 2
Fare
Echo "Numero: $ i"
Fatto

Il codice di esempio sopra deve stampare tutti i numeri pari tra 10 e 20. Di seguito è riportato un output di esempio:

Numero: 10
Numero: 12
..
Numero: 20

Esempio 4

Un altro caso di utilizzo comune per un ciclo per l'iterazione su una serie di articoli. Considera l'esempio mostrato di seguito:

#!/usr/bin/zsh
Database = ('Mysql' 'PostgreSQL' 'MongoDB' 'Redis' 'fauna' 'scarafaggio db')
per db in "$ database [@]";
Echo "Database: $ DB"
Fatto

Quanto sopra per il ciclo itederà ogni elemento nell'array e lo stamperà.

Database: mysql
Database: PostgreSQL
..
Database: fauna
Database: scarafaggio DB

Break and Continua dichiarazioni

È inoltre possibile utilizzare le parole chiave di interruzione e continuare per controllare il flusso del ciclo all'interno di uno script ZSH.

Cominciamo con la parola chiave di interruzione.

Break Key Word

È possibile utilizzare la parola chiave di interruzione per terminare il flusso di ciclo corrente e passare il controllo al blocco seguente. L'uso principale di questo è terminare il flusso del loop se una condizione specifica è vera.

Per esempio:

#!/usr/bin/zsh
per db in mysql postgresql mongodb redis fauna scarafaggio;
if [["$ db" == 'MongoDB']; Poi
rottura
fi
Echo "Database: $ DB"
Fatto

Nell'esempio sopra, ci avviciniamo all'articolo e rompe il flusso di loop se l'elemento corrente è mongodb.

Ecco un esempio di esempio:

Database: mysql
Database: PostgreSQL

Continua la parola chiave

D'altra parte, la parola chiave continua esce dall'attuale iterazione del loop e salta alla prossima iterazione.

Per esempio:

#!/usr/bin/zsh
per i in 1… 10; Fare
if [["$ i" == '5']; Poi
Continua
fi
Echo "Numero: $ i"
Fatto

Una volta che il ciclo è alla quinta iterazione, salterà e salterà al valore successivo nell'intervallo. Tale funzionalità porterà al 5 ° valore che non viene stampato.

Conclusione

Questo tutorial ha discusso di come implementare per loop in uno script ZSH. È bene notare che ZSH è basato su bash; Pertanto, la funzionalità Loop creata per Bash funzionerà anche per ZSH.