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 quais itens percorrer. Mas e se você quiser continuar iterando até que uma determinada condição mude? É aí que entra o loop while.

Um while loop continua executando enquanto sua condição permanecer verdadeira. Aqui está 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 verdadeiro, executa o corpo, incrementa o contador usando $((...)) para aritmética e verifica novamente.

Quando count atinge 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 quantas iterações precisará. Por exemplo, você pode continuar solicitando entrada até o usuário digitar "quit":

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

Tenha cuidado com laços while. Se a condição nunca se tornar falsa, seu laço executará 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 shell chamado counter.sh que usa um loop while para imprimir números de 1 a 4.

Seu script deve:

  1. Comece com a linha shebang (#!/bin/bash)
  2. Crie uma variável chamada num com o valor inicial 1
  3. Use um loop while que continua enquanto num for menor ou igual a 4
  4. Dentro do loop, imprima o número atual no formato: Number: [num]
  5. Incremente 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 comparação "menor ou igual a". Lembre-se de incrementar o contador dentro do loop com num=$((num + 1)) para evitar um loop infinito. Termine seu loop while com done.

Folha de consulta

Um laço while continua executando enquanto sua condição permanecer verdadeira:

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

O laço verifica a condição antes de cada iteração. Use $((...)) para operações aritméticas para incrementar contadores.

Laços while são úteis quando você não sabe antecipadamente quantas iterações precisa, como aguardando entrada específica do usuário:

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

Sempre garanta que algo dentro do laço eventualmente altere a condição para evitar laços infinitos.

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