Menu
Coddy logo textTech

Laço While

Parte da seção Fundamentos do Journey de Terminal da Coddy. Lição 72 de 82.

O loop for é ótimo quando você sabe exatamente por quais itens iterar. Mas e se você quiser continuar repetindo até que uma determinada condição mude? É aí que entra o loop while.

Um loop while continua sendo executado enquanto sua condição permanecer verdadeira. Esta é a estrutura básica:

#!/bin/bash
count=1
while [ $count -le 5 ]; do
    echo "Count: $count"
    count=$((count + 1))
done

Este script imprime os números de 1 a 5.

O loop verifica se count é menor ou igual a 5. Se for verdadeiro, ele executa o corpo, incrementa o contador usando $((...)) para aritmética e verifica novamente.

Quando count chega a 6, a condição se torna falsa e o loop para.

Os loops while são perfeitos quando você não sabe de antemão de quantas iterações precisa. Por exemplo, você pode continuar solicitando uma entrada até que o usuário digite "quit":

#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
    read -p "Enter command (quit to exit): " input
    echo "You entered: $input"
done

Tenha cuidado com loops while. Se a condição nunca se tornar falsa, seu loop será executado para sempre.

Sempre certifique-se de que algo dentro do loop eventualmente altere a condição, como incrementar um contador ou atualizar uma variável com base na entrada do usuário.

challenge icon

Desafio

Fácil

Crie um script de shell chamado counter.sh que use um loop while para imprimir números de 1 a 4.

Seu script deve:

  1. Começar com a linha shebang (#!/bin/bash)
  2. Criar uma variável chamada num com o valor inicial 1
  3. Usar um loop while que continue enquanto num for menor ou igual a 4
  4. Dentro do loop, imprimir o número atual no formato: Number: [num]
  5. Incrementar num em 1 após cada iteração usando $((num + 1))

Torne o script executável e execute-o. Sua saída deve ser:

Number: 1
Number: 2
Number: 3
Number: 4

Dica: Use -le para a comparação "menor ou igual a". Lembre-se de incrementar o contador dentro do loop com num=$((num + 1)) para evitar um loop infinito. Encerre o loop while com done.

Experimente você mesmo

Terminal
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Playground de Terminal