GNU/Linux >> Linux Esercitazione >  >> Linux

Bash For Loop con esempi pratici

Una caratteristica essenziale di ogni linguaggio di programmazione per computer è la capacità di eseguire ripetutamente un pezzo di codice. Risparmia molto tempo e riduce anche le righe di codice in un programma. La programmazione Bash consente agli utenti di eseguire un'attività ancora e ancora utilizzando i loop. In questo articolo, esamineremo il For Loop dichiarazione.

Un Ciclo For istruzione viene utilizzata per eseguire una serie di comandi fino a quando una particolare condizione diventa falsa. Ad esempio, puoi usarlo per eseguire un comando Linux cinque volte o usarlo per leggere ed elaborare file sui sistemi fino a raggiungere una condizione particolare.

Comando Bash For Loop

Il Ciclo For nella programmazione Bash è disponibile in due diverse sintassi:

  • Il For In Loop
for item in (list)
do
command_one
command_two
...
done

Nella sintassi For In Loop sopra, ci sono quattro parole chiave:for, in, do e done. L'elenco si riferisce ai valori nell'"elenco". Item è un nome di variabile che non è una parola chiave nel linguaggio di programmazione Bash.

Quando eseguiamo il programma, eseguirà il comando in base al numero di elementi nell'"elenco". Pertanto, se l'elenco contiene cinque cifre, (1 2 3 4 5), il comando viene eseguito cinque volte.

In ogni iterazione, il valore nell'elenco viene memorizzato nella variabile item e utilizzato nel corpo del programma.

  • Il For Loop con una sintassi simile a quella del linguaggio di programmazione C
for (( expression_1; expression_2; expression_3))
do
command_one
command_two
...
done

Con l'istruzione For Loop sopra, se sei uno sviluppatore C, C++ o Java, dovresti avere familiarità con la sintassi. 'expression_1 sta per inizializzazione, expression_2 sta per condition e expression_3 sta per aggiornamento.

Quando eseguiamo il programma, 'expression_1' viene valutata prima di eseguire la prima iterazione inizializzando i valori delle variabili per il ciclo For.

Il corpo del programma viene eseguito finché expression_2 non è TRUE. Il corpo del programma qui si riferisce ai comandi tra le parole chiave do e done. Ora, dopo ogni iterazione del programma, viene valutata expression_3.

Dopo averlo capito, diamo un'occhiata ad alcuni esempi di Bash For Loop che puoi utilizzare nelle tue attività quotidiane lavorando con i sistemi Linux. Scriveremo script e li eseguiremo nel terminale. Nota, tutti gli script Bash utilizzano l'estensione '.sh.'.

Usa For Loop per stampare una serie di stringhe

È possibile utilizzare un ciclo For In per stampare una serie di stringhe. Dai un'occhiata al codice qui sotto. Abbiamo già i tre file utilizzati nel programma nella nostra directory di lavoro. Questo è "testFile1", "testFile2" e "testFile3".

#!/bin/bash
for item in testFile1 testFile2 testFile3
do
cat $item
echo "Done with file $item"
echo 
done

L'output è:

Il programma sopra elenca il contenuto del file specificato nell'elenco. Cioè, testFile1, testFile2 e testFile3. Il comando 'cat' è un'utilità Linux utilizzata per visualizzare il contenuto di un file.

Pertanto, il programma scorre i file che iniziano con "testFile1", esegue il comando "cat" su di esso prima di stampare l'istruzione "fatto con testFilee" e scorre al file successivo.

Dopo aver ripetuto tutti i file nell'elenco, il programma si chiude automaticamente.

'For In Loop' con elementi Array per eseguire il backup dei file

È possibile utilizzare un ciclo For In per scorrere gli elementi in una matrice. Dai un'occhiata al codice qui sotto.

#!/bin/bash

Files=('testFile1' 'testFile2' 'testFile3')
for item in "${Files[@]}"; 
do
cp $item{,.bak}
echo "Created a backup of $item"
done

L'output è come mostrato di seguito.

Il programma sopra utilizza il comando cp per creare backup dei file nell'array. Mentre scorre ogni file, crea un backup dei dati e stampa il "messaggio di backup creato" prima di passare all'elemento successivo nell'array.

'For In Loop' con intervallo

Puoi scorrere su un intervallo di numeri. Ad esempio, desideri scorrere tra le cifre da 1 a 100. Scrivere tutti questi numeri nel tuo programma renderà il codice abbastanza grande. Possiamo risolverlo utilizzando gli intervalli. Dai un'occhiata al codice qui sotto.

#!/bin/bash

for i in {0..50}
do
echo "COUNT: $i"
done

L'output dovrebbe essere come mostrato di seguito.

Dall'output sopra, vediamo che il programma ha stampato i numeri da 1 a 50. È perché gli abbiamo assegnato un intervallo di 1 - 50 cifre.

Si supponga di voler creare un intervallo che salti un certo numero di cifre prima di stampare un output. Quindi dovremo includere un terzo parametro nella sintassi dell'intervallo. Vedi il codice qui sotto.

#!/bin/bash

for i in {0..100..10}
do
echo "COUNT: $i"
done

L'output dovrebbe essere come mostrato di seguito.

L'output dovrebbe essere come mostrato di seguito.

Dall'immagine sopra, vediamo che il programma ha stampato i numeri da 0 a 100 ma saltando dieci (10) cifre in ogni iterazione.

'For Loop' con sintassi di programmazione C

Dopo aver esaminato diversi esempi con "For In Loop", diamo un'occhiata all'altra sintassi For Loop. Contiene un'espressione di inizializzazione che inizializza il ciclo, un'espressione di condizione che determina l'esecuzione del programma e un'espressione di incremento che aggiorna il valore della variabile.

Dai un'occhiata al codice qui sotto.

#!/bin/bash

for (( i=5; i>=1; i-- ))
do 
echo "COUNT: $i"
done

L'output dovrebbe essere come mostrato di seguito.

Crea un ciclo infinito con For Loop

Per creare un ciclo infinito in Bash, useremo la sintassi di programmazione C. Vedi il codice qui sotto.

#!/bin/bash

for (( ; ; ))
do
echo "Use Ctrl+C to terminate the loop."
echo "Starting Infinite Loop..."
done

L'output dovrebbe essere come mostrato di seguito.

Per uscire da un ciclo infinito, premi Ctrl + C per annullare il processo.

Dichiarazioni Break and Continue in un "For Loop"

Nella programmazione, le istruzioni Break e Continue controllano l'esecuzione di un programma. L'istruzione Break termina il programma ed esce dal ciclo. L'istruzione Continue, invece, forza l'esecuzione della successiva iterazione del programma.

  • La dichiarazione di rottura

Diamo un'occhiata al programma di seguito, che utilizza l'istruzione Break.

#!/bin/bash
for distro in Ubuntu Manjaro Debian Fedora Kali ArchLinux
do
if [[ "$distro" == 'kali' ]]; then
break
fi
echo "Linux_distribution: $distro"
done

L'output dovrebbe essere come mostrato di seguito.

Dall'immagine sopra, vediamo che "Kali" non è stato stampato nell'output. È perché abbiamo fornito una "Condizione If" che controllava il valore contenuto dalla variabile "distro". Se il valore era "Kali", l'istruzione "break" veniva eseguita e terminava il ciclo.

Come puoi vedere, ArchLinux non è stato stampato nell'output perché l'istruzione break ha terminato il programma.

La dichiarazione Continua

A differenza dell'istruzione Break, l'istruzione Continue termina il programma su quella parte ma forza l'esecuzione dell'iterazione successiva del programma.

Dai un'occhiata al codice qui sotto.

#!/bin/bash

for distro in Ubuntu Manjaro Debian Fedora Kali ArchLinux
do
if [[ "$distro" == 'Kali' ]]; then
continue
fi
echo "Linux_distribution: $distro"
done

L'output dovrebbe essere come mostrato di seguito.

Dall'immagine sopra, vediamo che "Kali" non è stato stampato nell'output. È perché abbiamo fornito una "Condizione If" che controllava per vedere il valore detenuto dalla variabile "distro". Se il valore era "Kali", l'istruzione "continue" veniva eseguita. A questo punto ha terminato il Loop ma ha forzato l'esecuzione della parte successiva del programma.

Come puoi vedere, "Kali" non è stato stampato nell'output mentre "ArchLinux" lo era. L'istruzione Continue ha forzato l'esecuzione della parte successiva del programma.

Programmi Bash più pratici utilizzando il ciclo For

Dopo aver esaminato diversi programmi Bash utilizzando l'istruzione "For Loop", diamo un'occhiata a esempi di vita reale che puoi utilizzare per gestire i tuoi sistemi Linux.

  • Un programma Bash per convertire file MP3 in WAV

In questo programma, avrai bisogno dello strumento MPG123 installato nel tuo sistema. Il codice seguente cerca qualsiasi file con estensione '.mp3.' e lo converte in un file '.wav.' utilizzando lo strumento 'mpg123'.

#!/bin/bash
for item in ./*.mp3
do
mpg123 -w music.wav $item.mp3
done

Dall'immagine qui sotto, vediamo che abbiamo convertito "Audio.mp3" in "Music.wav".

  • Programma 'For Loop' per verificare se esistono file firefox.desktop.

Il programma seguente eseguirà un'iterazione su tutti i file presenti nella directory applications/ e fornirà un output per verificare se firefox.desktop è presente.

#!/bin/bash
for item in /usr/share/applications/*
do
if [ "${item}" == "/usr/share/applications/firefox.desktop" ]
then
echo "Firefox.Desktop is present in the applications directory";
fi
done

Conclusione

Ora che hai imparato a usare il For Loop istruzione nella programmazione Bash, crea programmi per automatizzare varie attività nei tuoi sistemi Linux. Se hai trovato utile questo articolo, sentiti libero di condividere il link con i tuoi amici.


Linux
  1. Bash For Loop Guida ed esempi

  2. Bash Istruzione If-Else con esempi

  3. Esempi di Bash For Loop e While Loop

  4. Esercitazione sullo stato di uscita di Bash Shell con esempi pratici

  5. Tieniti aggiornato - Bash For, While, Until Esempi di loop

Bash For Loops con esempi

Bash For Loop – La guida più pratica

Bash Scripting Part2 – Cicli For e While con esempi

Bash Scripting Introduzione Tutorial con 5 esempi pratici

Tutorial sulle funzioni di Bash Shell con 6 esempi pratici

Script Bash per Loop spiegato con esempi