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