Panoramica per Loop in Shell Scripting

Per il looping in Shell Scripting in questo, diciamo che se vogliamo eseguire un'attività o un'operazione ripetutamente, possiamo scrivere lo stesso codice per quel numero di volte che è un'attività che richiede tempo e non è anche efficiente. Al fine di evitare questo tipo di scenari, possiamo usare loop come for loop in un linguaggio di programmazione. Quindi, for loop viene utilizzato per eseguire una determinata attività come addizione / moltiplicazione o qualsiasi altra operazione per un certo numero di volte fino a quando la condizione di terminazione è soddisfatta in qualsiasi sistema operativo. Non è necessario scrivere più volte lo stesso codice usando il ciclo for.

Sintassi di for loop

La sintassi di for loop in shell scripting può essere rappresentata in diversi modi come di seguito:

1. Primo metodo di sintassi

for var in list
do
command1
command2
done

Dall'esempio sopra, abbiamo parole chiave predefinite o parole chiave integrate come for, do, done e in. Considerando che list è un elenco di variabili o un elenco di parole o un elenco di numeri e var è un nome di variabile durante quella iterazione. Se non viene fornito un elenco, bash prenderà un parametro posizionale che abbiamo passato nella shell. Nel precedente ciclo for, eseguirà tutti i comandi che sono tra do e done per n numero di volte in cui n è la dimensione della lista. Ad esempio, se la dimensione dell'elenco è 5 con numeri compresi tra 1 e 5, durante la prima iterazione 1 verrà memorizzato in var e le operazioni su var verranno eseguite dal corpo del ciclo for dove sono presenti i comandi.

2. Secondo metodo di sintassi

for ( ( expr1; expr2; expr3 ))
do
command1
command2
….
done

Nella sintassi sopra, se osserviamo questa sintassi è simile alla sintassi di for loop nel linguaggio di programmazione c. Nel ciclo for, ci sono tre espressioni in cui la prima espressione è per l'inizializzazione, la seconda è per il controllo condizionale e la terza è per l'aggiornamento dell'iteratore. L'esecuzione sopra per il ciclo inizierà in questo modo, prima di iniziare la prima iterazione expr1 viene eseguita, il che significa che l'inizializzazione verrà eseguita dopo che le operazioni / i comandi tra do e done verranno eseguiti iterativamente fino a quando expr2 non restituisce true e dopo ogni iterazione expr3 aggiorna il valore dell'iteratore (contatore) in modo che le operazioni vengano eseguite sull'elemento o sul valore successivi nell'elenco o sull'array o sulla stringa.

Diagramma di flusso - Per loop in Shell Scripting

Consideriamo un esempio di for loop e ne discutiamo il flusso usando il diagramma di flusso.

for filename in *.dat
do
echo cp $fname orig_$fname
done

Nel diagramma di flusso sopra, stiamo spiegando il flusso di for loop che sta ripetendo un elenco di nomi di file e ci sono quattro passaggi nel flusso come flusso di processo, valore variabile, processo e stdout. Nel flusso del processo, sta spiegando quando inizia il ciclo for, il valore dell'iteratore, controllando la condizione se soddisfacente, quindi esegue il processo altrimenti termina il processo. In valore variabile, iterazione per iterazione otterremo un nome file come textfile.dat e durante il processo, esegue l'istruzione echo in cui visualizza l'istruzione copy con un vecchio nome file e un nuovo nome su stdout. Quindi, questo è il flusso di for loop che scorre sull'elenco dei nomi dei file di input.

Produzione:

Come funziona Loop in Shell Scripting?

For loop in shell script funziona nel modo seguente ogni volta che shell vede la parola chiave perché sa che è necessario ripetere una serie di comandi una volta per ogni elemento in un elenco. Ogni volta che viene eseguito un iterazione un elemento nell'elenco viene assegnato alla variabile var e il var viene elaborato attraverso l'elenco dei comandi presenti nel ciclo tra il fare e il fare vengono eseguiti prima di passare all'elemento successivo nell'elenco o all'iterazione successiva. Accederemo al valore in var usando $ prima della variabile in modo che quando lo script della shell lo elabori, il valore in var lo sostituisce al posto di esso.

Esempio:

for filename in *.txt
do
ls filename
done

Nel programma sopra, stiamo passando un elenco di file .txt come input per il ciclo for e il nome della variabile è un nome file in cui il file .txt memorizzerà e quindi elaborerà il nome file elencando il file .txt nel nome file e quindi lo stesso processo si ripeterà fino al completamento dell'elaborazione di tutti i file .txt.

Produzione:

Esempi di for loop

Finora, abbiamo discusso di come il loop funzioni nello script della shell e in diverse sintassi. Ora, vediamo alcuni esempi e analizzandoli e spieghiamo ogni singolo esempio di ciò che fa

Esempio 1

Facciamo un elenco di valori statici come input per il ciclo e come verrà eseguito vedremo come di seguito:

for a day in Fri Thu Wed Tue Mon
do
echo “Todays day is $day”
done

Nell'esempio sopra, non dovremmo passare valori di input con, poiché il delimitatore se lo passiamo considererà anche il delimitatore un valore come "Ven" e non dovremmo elencare i valori usando le virgolette doppie "se le passiamo con virgolette doppie, lo script della shell tratterà tutti i valori come un singolo valore.

Un esempio o / p: oggi giorno è: Ven Gio Mer Mer Lun (se usiamo virgolette doppie)

Produzione:

Esempio n. 2

Ora vediamo un altro esempio in cui usiamo con prima dell'elenco di input come di seguito:

Month = “Jan Feb Mar Apr May Jun”
for mon in $Month
do
echo “Month is $mon”
done

Nell'esempio precedente eseguiamo la stessa esecuzione di for loop dell'esempio precedente ma invece della lettura dell'elenco di input verrà eseguita utilizzando la parola chiave "in". Nello scripting della shell, ogni variabile deve essere rappresentata tra virgolette ma ci sono poche eccezioni, come se usassimo le virgolette doppie in $ Month sopra per la linea di loop, allora tratterà intere parole come una singola riga. Quindi dobbiamo occuparcene.

Produzione:

Esempio n. 3

Ora, scriveremo per loop senza lista di input nell'istruzione for loop invece prenderà l'input dagli argomenti posizionali nello script e nell'esempio come di seguito:

Cerchiamo di shell nome dello script come sample.sh e il suo contenuto come di seguito:

for num
do
echo “Number is $num”
done
./sample.sh 1 2 3 4 5

Nell'esempio precedente, l'input per il ciclo for viene passato dall'elenco degli argomenti forniti allo script in modo che per ogni argomento elaborerà tutti i comandi e visualizzi l'output fino a quando tutti gli argomenti non sono stati ripetuti.

Produzione:

Conclusione - Per loop in Shell Scripting

Infine, si tratta di loop in shell scripting. Abbiamo discusso di cosa sia per loop in script di shell, per sintassi di loop, il suo diagramma di flusso che spiega il flusso di for loop, come funziona per loop in shell ed esempi di script per loop in shell. Spero che tu abbia una buona comprensione del ciclo, come usarlo negli script di shell ed eseguirlo dopo aver letto questo articolo.

Articoli consigliati

Questa è una guida a For loop in Shell Scripting. Qui discutiamo dell'introduzione, How for loop funziona in shell scripting, Diagramma di flusso ed Esempio di for loop. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più–

  1. Cicli in R
  2. Spark SQL Dataframe
  3. Database multidimensionale
  4. Vantaggi della visualizzazione dei dati

Categoria: