AWK - Loops

Questo capitolo spiega i loop di AWK con un esempio appropriato. I loop vengono utilizzati per eseguire una serie di azioni in modo ripetuto. L'esecuzione del ciclo continua fintanto che la condizione del ciclo è vera.

Per Loop

La sintassi di for il ciclo è -

Sintassi

for (initialization; condition; increment/decrement)
   action

Inizialmente, il foristruzione esegue l'azione di inizializzazione, quindi controlla la condizione. Se la condizione è vera, esegue le azioni, quindi esegue l'operazione di incremento o decremento. L'esecuzione del ciclo continua finché la condizione è vera. Ad esempio, il seguente esempio stampa da 1 a 5 utilizzandofor loop -

Esempio

[jerry]$ awk 'BEGIN { for (i = 1; i <= 5; ++i) print i }'

Eseguendo questo codice, ottieni il seguente risultato:

Produzione

1
2
3
4
5

While Loop

Il whileloop continua a eseguire l'azione fino a quando una particolare condizione logica non restituisce true. Ecco la sintassi diwhile loop -

Sintassi

while (condition)
   action

AWK controlla prima la condizione; se la condizione è vera, esegue l'azione. Questo processo si ripete fintanto che la condizione del ciclo viene valutata vera. Ad esempio, il seguente esempio stampa da 1 a 5 utilizzandowhile loop -

Esempio

[jerry]$ awk 'BEGIN {i = 1; while (i < 6) { print i; ++i } }'

Eseguendo questo codice, ottieni il seguente risultato:

Produzione

1
2
3
4
5

Loop Do-While

Il do-whileè simile al ciclo while, tranne per il fatto che la condizione di test viene valutata alla fine del ciclo. Ecco la sintassi dido-whileloop -

Sintassi

do
   action
while (condition)

In un do-whileciclo, l'istruzione di azione viene eseguita almeno una volta anche quando l'istruzione di condizione restituisce false. Ad esempio, il seguente esempio stampa da 1 a 5 numeri utilizzandodo-while loop -

Esempio

[jerry]$ awk 'BEGIN {i = 1; do { print i; ++i } while (i < 6) }'

Eseguendo questo codice, ottieni il seguente risultato:

Produzione

1
2
3
4
5

Istruzione Break

Come suggerisce il nome, viene utilizzato per terminare l'esecuzione del ciclo. Ecco un esempio che termina il ciclo quando la somma diventa maggiore di 50.

Esempio

[jerry]$ awk 'BEGIN {
   sum = 0; for (i = 0; i < 20; ++i) { 
      sum += i; if (sum > 50) break; else print "Sum =", sum 
   } 
}'

Eseguendo questo codice, ottieni il seguente risultato:

Produzione

Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45

Continua dichiarazione

Il continueviene utilizzata all'interno di un ciclo per passare alla successiva iterazione del ciclo. È utile quando si desidera saltare l'elaborazione di alcuni dati all'interno del ciclo. Ad esempio, il seguente esempio utilizzacontinue istruzione per stampare i numeri pari compresi tra 1 e 20.

Esempio

[jerry]$ awk 'BEGIN {
   for (i = 1; i <= 20; ++i) {
      if (i % 2 == 0) print i ; else continue
   } 
}'

Eseguendo questo codice, ottieni il seguente risultato:

Produzione

2
4
6
8
10
12
14
16
18
20

Istruzione Exit

Viene utilizzato per interrompere l'esecuzione dello script. Accetta un numero intero come argomento che è il codice dello stato di uscita per il processo AWK. Se non viene fornito alcun argomento,exitrestituisce lo stato zero. Ecco un esempio che interrompe l'esecuzione quando la somma diventa maggiore di 50.

Esempio

[jerry]$ awk 'BEGIN {
   sum = 0; for (i = 0; i < 20; ++i) {
      sum += i; if (sum > 50) exit(10); else print "Sum =", sum 
   } 
}'

Produzione

Eseguendo questo codice, ottieni il seguente risultato:

Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45

Controlliamo lo stato di ritorno dello script.

Esempio

[jerry]$ echo $?

Eseguendo questo codice, ottieni il seguente risultato:

Produzione

10