Pesquisa de site

Como usar o loop Until em seus scripts Shell


No bash, for, while e until são três construções de loop. Embora cada loop seja diferente sintaticamente e funcionalmente, seu objetivo é iterar sobre um bloco de código quando uma determinada expressão é avaliada.

O loop Until é usado para executar um bloco de código até que a expressão seja avaliada como falsa. Isso é exatamente o oposto de um loop while. O loop While executa o bloco de código enquanto a expressão é verdadeira e o loop until faz o oposto.

until [ expression ]
do
	code block
	...
	...
done

Vamos analisar a sintaxe.

  • Para iniciar o loop, você deve usar a palavra-chave até seguida por uma expressão entre colchetes simples ou duplos.
  • A expressão deve ser avaliada como falsa até iniciar a execução do bloco de código.
  • O bloco real de código é colocado entre do e done.

Neste breve artigo, você aprenderá como usar o loop Until em seus scripts de shell usando os exemplos a seguir.

Crie um loop infinito em scripts

Você pode criar um loop infinito usando uma instrução false como expressão. Ao tentar simular loops infinitos tente usar sleep que passará o script periodicamente.

count=0
until false
do
	echo "Counter = $count"
	((count++))
	sleep 2
done

Crie instruções de linha única

Você pode criar instruções de loop de linha única. Dê uma olhada no código abaixo. É igual ao nosso primeiro exemplo de loop infinito, mas em uma única linha. Aqui você deve usar um ponto e vírgula (;) para finalizar cada instrução.

until false; do echo "Counter = $count"; ((count++)); sleep 2; done

Alterar fluxo com instrução break e continue

Você pode usar instruções break e continue dentro do loop while. A instrução break sairá do loop e passará o controle para a próxima instrução, enquanto a instrução continue irá pular a iteração atual e iniciar a próxima iteração no loop.

Estou usando o mesmo exemplo de loop infinito. Aqui, quando a contagem for igual a cinco, a instrução continue saltará para a próxima iteração, ignorando o resto do corpo do loop. Da mesma forma, o loop é quebra quando a contagem é igual ou maior que 10.

count=0
until false
do
  ((count++))
  if [[ $count -eq 5 ]]
  then
    continue
  elif [[ $count -ge 10 ]]
  then
    break
  fi
  echo "Counter = $count"
done

É isso neste artigo. Iremos encontrá-lo com outro artigo interessante em breve ‘até‘ continue lendo e continue nos apoiando.