Android

Bash while loop

BASH Scripting Lesson 5 using WHILE loops

BASH Scripting Lesson 5 using WHILE loops

Índice:

Anonim

Loops são um dos conceitos fundamentais das linguagens de programação. Os loops são úteis quando você deseja executar uma série de comandos várias vezes até que uma condição específica seja atendida.

Em linguagens de script como o Bash, os loops são úteis para automatizar tarefas repetitivas. Existem três construções básicas de loop no script Bash, para loop, enquanto loop e até.

Este tutorial explica os conceitos básicos de loops while no Bash, bem como as instruções break e continue para alterar o fluxo de um loop.

Bash while Loop

O loop while é usado para executar um determinado conjunto de comandos um número desconhecido de vezes, desde que a condição especificada seja verdadeira.

O loop Bash while assume o seguinte formato:

while do done

A condição é avaliada antes de executar os comandos. Se a condição for avaliada como verdadeira, os comandos serão executados. Caso contrário, se a condição for avaliada como falsa, o loop será encerrado e o controle do programa será passado para o comando a seguir.

No exemplo abaixo, em cada iteração, o loop imprime o valor atual da variável i incrementa a variável em um.

i=0 while do echo Number: $i ((i++)) done

O loop ter itera, desde que i seja menor ou igual a dois. Ele produzirá a seguinte saída:

Number: 0 Number: 1 Number: 2

Loop infinito enquanto

Um loop infinito é um loop que se repete indefinidamente e nunca termina. Se a condição sempre for avaliada como verdadeira, você obterá um loop infinito.

No exemplo a seguir, estamos usando o comando interno : que sempre retorna true para criar um loop infinito. Você também pode usar o true comando interno ou qualquer outra declaração que sempre retorne verdadeiro.

while: do echo "Press to exit." sleep 1 done while: do echo "Press to exit." sleep 1 done

O loop while acima será executado indefinidamente. Você pode finalizar o loop pressionando CTRL+C

Aqui está um equivalente de linha única:

while:; do echo 'Press to exit.'; sleep 1; done while:; do echo 'Press to exit.'; sleep 1; done

Ler um arquivo linha por linha

Um dos usos mais comuns do loop while é ler um arquivo, fluxo de dados ou variável linha por linha.

No exemplo a seguir, o loop while lerá o arquivo /etc/passwd linha por linha e imprimirá cada linha.

file=/etc/passwd while read -r line; do echo $line done < "$file"

Em vez de controlar o loop while com uma condição, estamos usando o redirecionamento de entrada ( < "$file" ) para passar um arquivo para a read que é o comando que controla o loop. O loop while será executado até a última linha ser lida.

Ao ler o arquivo linha por linha, sempre use read com a opção -r para impedir que a barra invertida atue como um caractere de escape.

Por padrão, o comando read apara os caracteres de espaço em branco à esquerda / à direita (espaços e guias). Use a opção IFS= antes do comando read para evitar esse comportamento

file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"

Quebrar e continuar instruções

As instruções break e continue podem ser usadas para controlar a execução do loop while.

Declaração de quebra

A instrução break finaliza o loop atual e passa o controle do programa para o comando que segue o loop finalizado. Geralmente é usado para finalizar o loop quando uma determinada condição é atendida.

No exemplo a seguir, a execução do loop será interrompida quando o item iterado atual for igual a 2 .

i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'

Number: 0 Number: 1 All Done!

Declaração Continue

A instrução continue sai da iteração atual de um loop e passa o controle do programa para a próxima iteração do loop.

A seguir, quando o item iterado atual for igual a 2 a instrução continue fará com que a execução retorne ao início do loop e continue com a próxima iteração.

i=0 while do ((i++)) if]; then continue fi echo "Number: $i" done echo 'All Done!'

Number: 1 Number: 3 Number: 4 Number: 5 All Done!

Conclusão

Até agora você deve ter um bom entendimento de como usar o loop bash while.

terminal do laço da festança