Pesquisa de site

Como usar instruções Break e Continue em scripts Shell


Neste artigo, veremos como usar break e continue em scripts bash. No bash, temos três construções de loop principais (for, while, until). As instruções Break e continue são integradas ao bash e usadas para alterar o fluxo de seus loops. Este conceito de interrupção e continuação está disponível em linguagens de programação populares como Python.

type -a break continue

Saia do loop com uma instrução Break

A instrução break sairá do loop e o controle será passado para a próxima instrução do loop. Você pode executar o comando help para obter algumas informações sobre a instrução break.

help break

A sintaxe básica do break.

break [n]

n is optional

Dê uma olhada no exemplo abaixo. Este é um loop for simples que itera em um intervalo de valores de 1 a 20 em uma etapa incremental de 2. A instrução condicional avaliará a expressão e quando for true($val=9) então ele executará a instrução break e o loop será encerrado, ignorando as iterações restantes.

#!/usr/bin/bash

for val in {1..20..2}
do
  If [[ $val -eq 9 ]]
  then
     break
  else
  echo "printing ${val}"
fi
done

Ignore uma iteração com a instrução continue

E se você não quiser sair completamente do loop, mas pular o bloco de código quando uma determinada condição for atendida? Isso pode ser feito com uma instrução continue. A instrução continue irá pular a execução do bloco de código quando uma determinada condição for atendida e o controle for passado de volta para a instrução de loop para a próxima iteração.

Para acessar a ajuda.

help continue

Dê uma olhada no exemplo abaixo. Este é o mesmo exemplo que usamos para demonstrar a instrução break. Agora, quando Val é avaliado como nove, a instrução continue irá pular todos os blocos de código restantes e passar o controle para o loop for para a próxima iteração.

#!/usr/bin/bash

for val in {1..20..2}
do
  If [[ $val -eq 9 ]]
  then
      continue
  fi
  echo "printing ${val}"
done

Se você conhecesse python, então o comportamento de break e continue também seria o mesmo em python. Mas o python fornece mais uma instrução de controle de loop chamada pass.

Pass é como uma instrução null e o interpretador irá lê-la, mas não executará nenhuma operação. Simplesmente resulta em nenhuma operação. O Bash não fornece uma declaração semelhante, mas podemos emular esse comportamento usando a palavra-chave true ou dois pontos(:). Tanto true quanto dois pontos são integrados ao shell e não executam nenhuma operação.

type -a : true

Dê uma olhada no exemplo abaixo. Quando uma instrução condicional é avaliada como true($val=9) então a instrução true não fará nada e o loop continuará.

#!/usr/bin/bash

for val in {1..20..2}
do
  If [[ $val -eq 9 ]]
  then
      true
  fi
  echo "printing ${val}"
done

É isso neste artigo. Adoraríamos ouvir seus valiosos comentários e quaisquer dicas que você tenha.