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))
doneEste 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"
doneTenha 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.
Desafio
FácilCrie um script shell chamado counter.sh que usa um loop while para imprimir números de 1 a 4.
Seu script deve:
- Comece com a linha shebang (
#!/bin/bash) - Crie uma variável chamada
numcom o valor inicial1 - Use um loop while que continua enquanto
numfor menor ou igual a 4 - Dentro do loop, imprima o número atual no formato:
Number: [num] - Incremente
numem 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: 4Dica: Use
-lepara comparação "menor ou igual a". Lembre-se de incrementar o contador dentro do loop comnum=$((num + 1))para evitar um loop infinito. Termine seu loop while comdone.
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))
doneO 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"
doneSempre garanta que algo dentro do laço eventualmente altere a condição para evitar laços infinitos.
Experimente você mesmo
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
4Diretórios
Criar um DiretórioCopiar um DiretórioMover e Renomear um DiretórioExcluir um DiretórioResumo - Operações com Diretórios7Conteúdo do Arquivo
Head e TailContagem de PalavrasComando SortComando UniqGrep BásicoGrep com FlagsResumo - Detetive de Texto10Projeto Analisador de Log
Visão Geral do ProjetoVisualizando o Arquivo de Log13Fundamentos de Shell Scripting
O Que É Um Script de ShellCriar e Executar um ScriptVariáveis em ScriptsEntrada do Usuário em ScriptsInstrução IfLaço ForLaço WhileResumo - Adivinhador de Números2Navegação
Imprimir Diretório de TrabalhoListar ArquivosMudar DiretórioCaminhos Absolutos vs RelativosDiretório Home e RaizResumo - Encontre Seu Caminho8Redirecionamento
Saída PadrãoSobrescrever em um ArquivoAnexar a um ArquivoEntrada PadrãoErro PadrãoRecapitulação - Construtor de Log3Arquivos
Criar um ArquivoLer um ArquivoCopiar um ArquivoMover e Renomear um ArquivoExcluir um ArquivoResumo - Operações com Arquivos6Curingas e Padrões
O Curinga AsteriscoO Curinga InterrogaçãoCuringas de ColchetesCombinando CuringasResumo - Operações Seletivas9Pipes
O Que é um PipeEncadeando Dois ComandosEncadeando Múltiplos ComandosPipe com GrepResumo - Pipeline de Dados