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))
doneEste 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"
doneTenha 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.
Desafio
FácilCrie um script de shell chamado counter.sh que use um loop while para imprimir números de 1 a 4.
Seu script deve:
- Começar com a linha shebang (
#!/bin/bash) - Criar uma variável chamada
numcom o valor inicial1 - Usar um loop while que continue enquanto
numfor menor ou igual a 4 - Dentro do loop, imprimir o número atual no formato:
Number: [num] - Incrementar
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 a comparação "menor ou igual a". Lembre-se de incrementar o contador dentro do loop comnum=$((num + 1))para evitar um loop infinito. Encerre o loop while comdone.
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 DadosPratique por conta própria: Playground de Terminal