In questo argomento comprenderemo l'utilizzo di per ciclo negli script Bash.
Come qualsiasi altro linguaggio di programmazione, lo scripting della shell bash supporta anche i 'cicli for' per eseguire attività ripetitive. Ci aiuta a ripetere un particolare insieme di istruzioni su una serie di parole in una stringa o su elementi in un array. Ad esempio, puoi eseguire il comando (o l'attività) UNIX più volte o semplicemente leggere ed elaborare l'elenco dei comandi utilizzando un 'ciclo for'.
Sintassi del ciclo For
Possiamo applicare il 'ciclo for' allo script bash in due modi. Un modo è 'for-in' e un altro è la sintassi in stile c. Di seguito è riportata la sintassi di 'for loop' nello scripting della shell bash:
for variable in list do commands done
O
for (( expression1; expression2; expression3 )) do commands done
Ci sono alcuni punti chiave dell'istruzione 'for loop':
- Ogni blocco di 'ciclo for' in bash inizia con la parola chiave 'do' seguita dai comandi all'interno del blocco. L'istruzione 'for loop' è chiusa dalla parola chiave 'done'.
- Il numero di volte per cui un 'ciclo for' verrà ripetuto dipende dalle variabili di lista dichiarate.
- Il ciclo selezionerà un elemento dall'elenco e assegnerà il valore su una variabile che verrà utilizzata all'interno del ciclo.
- Dopo l'esecuzione dei comandi compresi tra 'do' e 'done', il ciclo torna all'inizio, seleziona l'elemento successivo dall'elenco e ripete l'intero processo.
- L'elenco può contenere numeri o stringhe ecc. separati da spazi.
Alcuni degli esempi di 'ciclo for' sono forniti di seguito per illustrare come funzionano:
Esempio di base del 'ciclo For'.
BashScript
#!/bin/bash #This is the basic example of 'for loop'. learn='Start learning from Javatpoint.' for learn in $learn do echo $learn done echo 'Thank You.'
Produzione
Ciclo For per leggere un intervallo
BashScript
#!/bin/bash #This is the basic example to print a series of numbers from 1 to 10. for num in {1..10} do echo $num done echo 'Series of numbers from 1 to 10.'
Produzione
Ciclo For per leggere un intervallo con incremento/decremento
Possiamo aumentare o diminuire un valore specificato aggiungendo altri due punti (..) e il valore da incrementare, ad esempio {START..END..INCREMENT}. Guarda l'esempio qui sotto:
Per incremento
#!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done
Produzione
Per Decremento
#!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done
Produzione
Ciclo For per leggere le variabili dell'array
Possiamo usare 'for loop' per ripetere i valori di un array.
strumento di guarigione gimp
La sintassi può essere definita come:
array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done
Produzione
Per ogni elemento in 'array' vengono eseguite le istruzioni o la serie di comandi da 'do' a 'done'. È possibile accedere a ciascun elemento come 'i' all'interno del ciclo per la rispettiva iterazione. Dai un'occhiata all'esempio seguente che spiega l'uso di 'for loop' per scorrere gli elementi di un array:
BashScript
#!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done
Produzione
Ciclo For per leggere gli spazi bianchi nella stringa come separatori di parole
La sintassi può essere definita come di seguito:
#!/bin/bash for word in $str; do done
Qui, stra si riferisce ad una stringa.
Le istruzioni da 'do' a 'done' vengono eseguite per ogni 'parola' di una stringa. Guarda l'esempio qui sotto:
BashScript
#!/bin/bash #For Loop to Read white spaces in String as word separators str='Let's start learning from Javatpoint.' for i in $str; do echo '$i' done
Produzione
Ciclo For per leggere ogni riga in String come una parola
La sintassi può essere definita come di seguito:
#!/bin/bash for word in '$str'; do done
Qui, le istruzioni da 'do' a 'done' vengono eseguite per ogni 'riga' di una stringa. Guarda l'esempio qui sotto:
BashScript
#!/bin/bash #For Loop to Read each line in String as a word str='Let's start learning from Javatpoint.' for i in '$str'; do echo '$i' done
Produzione
Nota: l'unica differenza tra 'Ciclo For per leggere gli spazi bianchi nella stringa come separatori di parole' e 'Ciclo For per leggere ogni riga in String come una parola' sono le virgolette doppie attorno alla variabile stringa.
For Loop per leggere tre espressioni
La sintassi a tre espressioni è la sintassi più comune del 'ciclo for'. La prima espressione si riferisce al processo di inizializzazione, la seconda espressione si riferisce alla terminazione e la terza espressione si riferisce all'incremento o decremento.
Dai un'occhiata all'esempio seguente per stampare da 1 a 10 numeri utilizzando tre espressioni con ciclo for:
BashScript
#!/bin/bash #For Loop to Read Three-expression for ((i=1; i<=10; i++)) do echo '$i' done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-8.webp" alt="Bash For Loop"> <h3>For Loop with a Break Statement</h3> <p>A 'break' statement can be used inside 'for' loop to terminate from the loop.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Table of 2 for table in {2..100..2} do echo $table if [ $table == 20 ]; then break fi done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-9.webp" alt="Bash For Loop"> <h3>For Loop with a Continue Statement</h3> <p>We can use the 'continue' statement inside the 'for' loop to skip any specific statement on a particular condition. It tells Bash to stop executing that particular iteration of the loop and process the next iteration.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement' for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no 'start, condition, and increment' in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo 'Current Number: $((i++))' done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;></pre></=10;>
Produzione
parola chiave statica in Java
Ciclo For con un'istruzione Continue
Possiamo usare l'istruzione 'continue' all'interno del ciclo 'for' per saltare qualsiasi istruzione specifica su una condizione particolare. Dice a Bash di interrompere l'esecuzione di quella particolare iterazione del ciclo ed elaborare l'iterazione successiva.
BashScript
#!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement' for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no 'start, condition, and increment' in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo 'Current Number: $((i++))' done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;>
Produzione
Conclusione
In questo argomento, abbiamo discusso come utilizzare l'istruzione for loop in Bash per eseguire attività specifiche
=20;>=10;>