Comando Bash For Loop – Guia e Exemplos
O for loop é uma das instruções mais básicas em diversas linguagens de programação. Neste tutorial, vamos explicar como é utilizado na linguagem de programação Bash – justificando o nome, “bash for loop”.
Um for loop é uma instrução de iteração, significando que pode ser executada repetidamente. Digamos que você quer executar uma instrução 5 vezes. Ao invés de escrever 5 pedaços de códigos distintos, você pode escrever uma única sintaxe de um for loop. Mas este é só um exemplo, vamos explorar ainda mais o potencial do for loop nos parágrafos abaixo. Vamos lá!
Sintaxe Bash For Loop
Basicamente, a sintaxe mais simples do for loop repete a ocorrência de uma série de variáveis. Tipicamente, ela fica assim:
for VARIABLE in 1 2 3 4 5 .. N Perform the below command: command1 command2 commandN done
No mundo real, esta sintaxe ficaria parecida com o exemplo abaixo:
#!/bin/bash for i in 1 2 3 4 5 do echo "Hello $i" done
Executar o arquivo bash irá gerar o seguinte texto:
Hello 1 Hello 2 Hello 3 Hello 4 Hello 5
Vamos inspecionar cada elemento:
- #!/bin/bash – mostra que é código é um script bash.
- i – é uma marcação para uma variável. Enquanto que $i é o valor individual da variável. Você também pode escrevê-lo como c/$c ou outro nome.
- in – separa a variável e os itens que seguem.
- 1 2 3 4 5 – é um exemplo de itens que você quer basear a instrução.
- do – é a palavra chave que inicia os loops. Ele, então, irá executar a instrução n vezes, sendo n o número total de itens. Aqui, o valor de n é 5.
- echo “Hello: $i” – é o código que será repetido n vezes. Lembre-se que aspas transformam qualquer coisa em uma variável.
- done – encerra o loop.
Você pode escrever o código de maneiras diferentes dependendo da versão do bash sendo utilizada:
Versões 3.0+ do bash permitem encurtar o intervalo (range) com “. .”.
#!/bin/bash for i in {1. .5} do echo "Hai $i" done
Versões 4.0+ do bash permitem que você use a sintaxe {INÍCIO. .FIM. .INCREMENTO}.
#!/bin/bash for i in {0. .8. .2} do echo "Hai $i" done
O resultado vai ser este:
Hai 0 Hai 2 Hai 4 Hai 6 Hai 8
Outras sintaxes comuns são:
for VARIABLE in file1 file2 file3 do command1 on $VARIABLE command2 commandN done
Ou assim:
for OUTPUT in $(Linux-Or-Unix-Command-Here) do command1 on $OUTPUT command2 on $OUTPUT commandN done
Exemplos de Bash For Loop
Você pode atualizar a sintaxe para fazer múltiplas operações. Lembre-se, antes de fazer qualquer coisa é preciso acessar sua hospedagem de VPS.
Confira este tutorial caso você esteja tendo problemas com isso. Ou, caso você esteja com dificuldades quanto ao bash, confira nosso guia básico de comandos Bash. Não se esqueça que funções bash precisam estar em um arquivo .sh. Para criar um, execute o comando:
vim NomeArquivo.sh
Isto irá criar um arquivo .sh, e irá abri-lo com o editor VIM. Para aprender mais sobre isso, não deixe de conferir o guia básico mencionado acima.
Utilizar Bash For Loop para Criar Loops Infinitos
Uma vez ativado, este loop continuará sendo executado até que você o interrompa pressionando Control + C. Neste caso, o termo “Hello World” continuará reaparecendo sozinho.
#!/bin/bash for (( ; ; )) do echo "Hello World!" done
Utilizar Bash For Loop para Criar um Loop de Três Expressões
O loop é composto de três expressões escritas – um iniciador (EXP1), uma condição (EXP2) e uma expressão de contagem (EXP3). Algumas pessoas chamam de loop estilo C devido a semelhança de estruturação de código. A sintaxe deste loop é:
for (( EXP1; EXP2; EXP3 )) do command1 command2 command3 done
Exemplo:
#!/bin/bash for (( c=1; c<=5; c++ )) do echo "Hai $c" done
O código diz que o valor inicial é 1. O loop será executado desde que a condição EXP2 seja verdadeira, o que significa que não deve ser maior do que 5. Além disso, o sinal ++ indica que o incremento é 1. Então, ele repetirá o loop um por um, começando do valor inicial. Resultado:
Hai 1 Hai 2 Hai 3 Hai 4 Hai 5
Utilizar Bash For Loop para Criar um Loop Pule e Continue
A instrução continue pula o loop para o valor inicial e continua o loop em seguida. É assim que a sintaxe fica:
for I in 1 2 3 4 5 do if [condition] then continue #Go to next iteration of I in the loop and skip statements3 fi statement done
Seguindo esta sintaxe podemos criar um bash loop pule e continue assim:
for i in {1..5} do if [[ "$i" == '4' ]] then continue fi echo "Hai $i4" done
O resultado vai ser:
Hai 1 Hai 2 Hai 3 Hai 5
Já que o valor 4 fecha com a instrução continue, o loop não executou o código e continuou com o próximo valor, que é o 5.
Utilizar Bash for Loop para Criar um Loop de Saída Condicional com Pausa
O loop permite que você pare a operação se qualificar a condição estabelecida. Isso pode ser seguido por outra instrução. Esta é a sintaxe:
for I in 1 2 3 4 5 do if [condition] then break fi statement done
Ao usar esta função, nosso código vai ficar assim:
for city in Manila Bangkok Jakarta Kuala Lumpur do if [[ "$city" == 'Jakarta' ]]; then break fi echo "city: $city" done echo 'Yes, that’s all!'
Finalmente, o resultado:
city: Manila city: Bangkok Yes, that’s all!
A instrução diz ao loop para para a operação uma vez que a condição for verdadeira (encontrar o termo Jakarta). Ele então irá executar o segundo código, que é exibir o texto Yes, that’s all.
Resumo
O Bash for loop é ótimo para automatizar tarefas repetitivas. Você pode fazer muito mais além dos exemplos básicos mostrados acima. Por exemplo, você pode acompanhar arquivos e realizar muitas outras tarefas.
Tudo que você precisa é escrever a sintaxe. Pode ser uma grande linha de aprendizado, mas este tutorial vai dar uma boa base para quem está começando. Lembre-se que a prática leva a perfeição, então continue praticando!