Como usar o while Loop em Bash

Suraj Joshi 30 janeiro 2023
  1. Sintaxe: while Loop em Bash
  2. Exemplo: while Loop in Bash
  3. Exemplo: Loop while infinito no Bash
  4. Exemplo: while Loop in Bash Com declaração de break
  5. Exemplo: while Loop in Bash Com declaração de continue
Como usar o while Loop em Bash

O loop while é uma das estruturas de loop mais utilizadas em quase todas as linguagens de programação. Ele é utilizado quando não sabemos o número de vezes que precisamos executar um loop. Podemos especificar uma condição para o loop while, e as declarações no loop são executadas até que a condição se torne falsa.

Sintaxe: while Loop em Bash

while [condition]
do
   command-1
   command-2
     ...
     ...
   command-n
done

Aqui, a condition representa a condição que precisa ser verificada toda vez antes de executar comandos no laço. Se a condition for verdadeira, nós executamos as declarações no laço. Se a condition for falsa, saímos do laço. As declarações de command-1 a command-n são declarações executadas em loop até que a condition se torne falsa.

Exemplo: while Loop in Bash

#!/bin/bash

num=5

while [ $num -ge 0 ]
do
  echo $num
  ((num--))
done

Resultado:

5
4
3
2
1
0

Aqui, inicialmente, o num está definido em 5. Continuamos imprimindo num no terminal e diminuindo o num por 1 em um loop, desde que o valor do num seja maior ou igual a 0.

Exemplo: Loop while infinito no Bash

#!/bin/bash

while true
do
  echo "This is an infinite while loop. Press CTRL + C to exit out of the loop."
  sleep 0.5
done

Resultado:

This is an infinite while loop. Press CTRL + C to exit out of the loop.
This is an infinite while loop. Press CTRL + C to exit out of the loop.
This is an infinite while loop. Press CTRL + C to exit out of the loop.
^C

É um loop infinito que imprime: This is an infinite while loop. Press <kbd>Ctrl</kbd>+<kbd>C</kbd> to exit out of the loop. a cada 0,5 segundos. Para sair do laço, podemos pressionar CTRL+C.

Exemplo: while Loop in Bash Com declaração de break

#!/bin/bash

num=5

while [ $num -ge 0 ]
do
  echo $num
  ((num--))
  if [[ "$num" == '3' ]]; then
    echo "Exit out of loop due to break"
    break
  fi
done

Resultado:

5
4
Exit out of loop due to break

No programa acima, o num é inicializado como 5. O loop é executado desde que o num seja maior ou igual a 0. Mas como temos uma declaração de break no loop quando o num é 3. Então, saímos do loop quando o valor do num se torna 3.

Exemplo: while Loop in Bash Com declaração de continue

#!/bin/bash

num=6

while [ $num -ge 1 ]
do
  ((num--))
  if [[ "$num" == '3' ]]; then
    echo "Ignore a step due to continue"
    continue
  fi
  echo $num
  
done

Resultado:

5
4
Ignore a step due to continue
2
1
0

No programa acima, o num é inicializado como 6. No loop, primeiro diminuímos o num por 1 e depois imprimimos o último valor do num. O laço é executado desde que o valor do num seja maior ou igual a 1. Quando o num se torna 3, o script não imprime o valor de num, pois temos a declaração continue quando o num é 3.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn