Neste tópico, entenderemos o uso de para loop em scripts Bash.
Como qualquer outra linguagem de programação, o script bash shell também suporta 'loops for' para executar tarefas repetitivas. Isso nos ajuda a iterar um conjunto específico de instruções sobre uma série de palavras em uma string ou elementos em uma matriz. Por exemplo, você pode executar um comando (ou tarefa) UNIX muitas vezes ou apenas ler e processar a lista de comandos usando um 'loop for'.
Sintaxe do Loop For
Podemos aplicar 'for loop' no script bash de duas maneiras. Uma maneira é 'for-in' e outra é a sintaxe estilo c. A seguir está a sintaxe de 'loop for' no script bash shell:
for variable in list do commands done
Ou
for (( expression1; expression2; expression3 )) do commands done
Existem alguns pontos-chave da instrução 'for loop':
- Cada bloco de 'for loop' no bash começa com a palavra-chave 'do' seguida pelos comandos dentro do bloco. A instrução 'for loop' é fechada pela palavra-chave 'done'.
- O número de tempo durante o qual um 'loop for' irá iterar depende das variáveis da lista declaradas.
- O loop selecionará um item da lista e atribuirá o valor a uma variável que será usada dentro do loop.
- Após a execução dos comandos entre ‘do’ e ‘done’, o loop volta ao topo e seleciona o próximo item da lista e repete todo o processo.
- A lista pode conter números ou strings, etc., separados por espaços.
Alguns dos exemplos de 'loop for' são fornecidos abaixo para ilustrar como eles funcionam:
Exemplo básico de 'For Loop'
Script Bash
#!/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.'
Saída
For Loop para ler um intervalo
Script Bash
#!/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.'
Saída
For Loop para ler um intervalo com incremento/decremento
Podemos aumentar ou diminuir um valor especificado adicionando outros dois pontos (..) e o valor a ser seguido, por exemplo, {START..END..INCREMENT}. Confira o exemplo abaixo:
Para incremento
#!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done
Saída
Para diminuição
#!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done
Saída
For Loop para ler variáveis de array
Podemos usar 'for loop' para iterar os valores de um array.
desvantagens sobre a internet
A sintaxe pode ser definida como:
array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done
Saída
Para cada elemento em 'array', as instruções ou conjunto de comandos de 'do' até 'done' são executados. Cada elemento pode ser acessado como 'i' dentro do loop para a respectiva iteração. Confira o exemplo abaixo explicando o uso de 'for loop' para iterar sobre elementos de um array:
Script Bash
#!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done
Saída
For Loop para ler espaços em branco em String como separadores de palavras
A sintaxe pode ser definida conforme abaixo:
#!/bin/bash for word in $str; do done
Aqui, str refere-se a uma string.
As instruções de 'do' até 'done' são executadas para cada 'palavra' de uma string. Confira o exemplo abaixo:
pandas criando dataframe
Script Bash
#!/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
Saída
For Loop para ler cada linha em String como uma palavra
A sintaxe pode ser definida conforme abaixo:
#!/bin/bash for word in '$str'; do done
Aqui, as instruções de 'do' até 'done' são executadas para cada 'linha' de uma string. Confira o exemplo abaixo:
Script Bash
#!/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
Saída
Nota: A única diferença entre 'For Loop para ler espaços em branco em String como separadores de palavras' e 'For Loop para ler cada linha em String como uma palavra' são as aspas duplas ao redor da variável string.
For Loop para ler três expressões
A sintaxe de três expressões é a sintaxe mais comum de 'loop for'. A primeira expressão refere-se ao processo de inicialização, a segunda expressão refere-se ao término e a terceira expressão refere-se ao incremento ou decremento.
Confira o exemplo abaixo para imprimir de 1 a 10 números usando três expressões com loop for:
Script Bash
#!/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;>
Saída
For Loop com uma instrução Continue
Podemos usar a instrução 'continue' dentro do loop 'for' para pular qualquer instrução específica em uma condição específica. Diz ao Bash para parar de executar aquela iteração específica do loop e processar a próxima iteração.
Script Bash
#!/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;>
Saída
Conclusão
Neste tópico, discutimos como usar a instrução de loop for no Bash para executar tarefas específicas
=20;>=10;>