Bash per loop per iterare attraverso un array

Bash per loop per iterare attraverso un array

Un loop "per" è una parte fondamentale di quasi tutti i linguaggi di programmazione. Aiuta a scrivere il codice che vuoi essere ripetuto nel numero di volte desiderato. Per i sistemi basati su Linux, Bash presenta anche una sintassi dedicata che consente ai suoi utenti di sfruttare loop per automatizzare le loro attività quotidiane attraverso gli script.

Sebbene sia possibile utilizzare il ciclo "per" in un numero praticamente infinito di scenari, questa guida esaminerà tre scenari di base che puoi collegare a scenari più estesi e complessi per raggiungere obiettivi più grandi. Esploreremo tre scenari di base che impiegano il ciclo per iterarsi attraverso un array.

Per dimostrare il funzionamento del ciclo "per", dimostrerò gli script bash usando Ubuntu 22.04.

Creazione del file bash

Prima di esplorare gli scenari, creiamo il nostro file bash, che conterrà il nostro script bash. Basta navigare nella directory desiderata nel terminale e creare un file utilizzando il comando "nano" o "touch".

Per questa guida, creerò un "test.File Sh "nella mia directory" documenti ".

Questo aprirà il tuo file bash utilizzando l'Editor di testo Nano.

Qui, puoi iniziare a scrivere il codice che desideri nel tuo file di script. Cominciamo esplorando gli scenari.

Usando il ciclo "per" per visualizzare il contenuto di un array

Con il tuo file bash aperto nell'editor, possiamo iniziare ad aggiungere codice ad esso. Per specificare che si tratta di un file bash, è necessario indicare quanto segue:

"##! /bin/bash "

Innanzitutto, dobbiamo definire un array e assegnare cinque valori ad esso. Assegniamo i nomi John, Jane, Jim, Jack e Janis.

Ora arriva la parte divertente; Dobbiamo impostare il ciclo for, che usando l'iteratore "i" iterirà attraverso il contenuto dell'array ed eseguirà la funzione di visualizzazione. Puoi farlo come tale:

Questa linea imposta il ciclo. Con il simbolo "$", stiamo specificando che stiamo cercando di accedere al valore dell'indice specifico dell'array. Il simbolo "@" si riferisce all'indice dell'array, che contiene il valore a cui stiamo cercando di accedere utilizzando l'iteratore "i".

Negli script bash, la sintassi impone che specifichiamo la nostra funzione all'interno delle parole chiave "do" e "fatte". Quindi, mentre stiamo cercando di visualizzare il contenuto dell'array, lo scriveremo come mostrato di seguito:

Questo passerà attraverso tutto il contenuto dell'array e li mostrerà uno per uno. Ora, la nostra sceneggiatura sembra questo:

Premere "Ctrl+O" per salvare il contenuto di questo file di script e "Ctrl+X" per uscire dal nano Editor.

Esecuzione dello script

Con tutto il codice in atto, potresti chiederti come puoi eseguire questo codice per vedere l'output. Nel tuo terminale, tipo:

$ Bash Test.sh

Qui, puoi vedere i nomi visualizzati come li abbiamo definiti.

Usando il ciclo "per" per scrivere il contenuto di un array a un file di testo

Questo scenario funziona bene nei casi in cui otteniamo l'output di uno scenario specifico in un array e dobbiamo produrre il contenuto dell'array per riferimento futuro o un altro calcolo.

Quindi, prendiamo il codice che abbiamo scritto nello scenario precedente e modificarlo. Invece di stampare ogni voce nell'array uno per uno, dobbiamo scriverla in un file di testo. Apri il tuo file di script usando:

$ nano test.sh

Ora, dato che abbiamo l'array chiamato "Writers", li scriveremo in un file chiamato "Writers.txt "usando i simboli >>. Quindi il tuo codice dovrebbe apparire così:

Salva ed esci dal file per eseguire lo script.

Esecuzione dello script

Simile allo scenario precedente, è possibile eseguire lo script aggiornato usando:

$ Bash Test.sh

Questa volta quando esegui il codice, vedrai che non ci sarà alcun output nel terminale. Questo perché il codice sta producendo tutto sul file di testo. Un file di testo sarebbe stato creato nella stessa directory.

All'apertura del file (puoi semplicemente fare doppio clic sul file per aprirlo), vedrai che i nomi sono stati aggiunti al file:

Usando il ciclo "per" per confrontare una determinata stringa con gli elementi dell'array

Useremo lo stesso script bash per questo scenario ed estendermo ulteriormente.

La struttura principale del nostro codice rimarrà la stessa e dovremo aggiornare il contenuto del codice Loop. Usando lo stesso script, vedremo se il nostro nome fornito corrisponde a uno qualsiasi dei nomi nell'array; Se lo fa, li salveremo. Per gli altri nomi dell'array, li visualizzerà semplicemente.

Apriamo il nostro file usando "nano":

$ nano test.sh

Ora, vorremmo aggiornare il codice tra le parole chiave DO e FATTO a quanto segue:

Questo codice controllerà al momento dell'esecuzione se uno qualsiasi dei nomi nell'array corrisponde "Janis", quindi visualizza "Ciao Janis". Altrimenti, basta visualizzare i nomi. Il tuo codice dovrebbe apparire così:

Per poter eseguire questo codice, è necessario salvare il file ed uscire dall'editor di testo.

Esecuzione dello script

Quando sei tornato nel terminale, puoi usare lo stesso per eseguire il tuo script di bash modificato:

$ Bash Test.sh

Conclusione

Questi tre sono esempi molto primitivi di utilizzo del ciclo "per" negli script bash. Mentre continui a imparare di più su ciò che questi script possono fare, vedrai che questo ciclo è molto utile e può essere utilizzato in codici molto complessi. Per comprendere meglio lo scripting e usarlo nelle operazioni quotidiane, è necessario comprendere questi componenti di base del codice e cosa fa la sintassi.

Se riscontri qualche problema con uno di questi scenari o desideri saperne di più su Loop o Bash Scripting, sentiti libero di coinvolgerci attraverso la sezione commenti e saremo lieti di aiutarti. Saluti.