Programação BASH

Loop aninhado em exemplos de script Bash

Loop aninhado em exemplos de script Bash

Em programação ou script, o loop é um dos conceitos mais básicos e poderosos. Um loop está realizando certas tarefas até que as condições especificadas sejam atendidas. Cada linguagem de programação ou script tem maneiras diferentes de implementar o conceito.

Neste guia, verifique o loop aninhado no script bash.

Loop aninhado

Um loop, por definição, está realizando certas tarefas até que as condições sejam atendidas. E se a tarefa incluir a execução de um loop? Este é o conceito de um loop aninhado. Um loop dentro de outro.

Esta é a estrutura básica de um loop.

while (condição)
# alguma coisa

Aqui, o loop while continuará executando as tarefas declaradas dentro do bloco enquanto a condição for atendida. No caso de um loop while aninhado, a estrutura seria semelhante a esta.

# loop principal
while (condição)
# loop aninhado
while (condição)
# alguma coisa

Em teoria, os loops aninhados podem ir a profundidades infinitas. Em muitas situações, loops aninhados podem ser a solução perfeita.

Loop no script bash

Bash é uma linguagem de script poderosa. Existem diferentes estruturas de loop no bash. Os mais populares são os loops for, while e until. Se você está familiarizado com a programação C / C ++ antes, então a sintaxe certamente será bastante semelhante.

Para loops

For loop é uma das saídas de formulários mais comuns e versáteis, etc. A estrutura dos loops no script bash. A estrutura também se assemelha muito ao loop em C / C ++.

A estrutura do loop for no bash é a seguinte.

for ((inicializar; condição; incremento)); Faz
# alguma coisa
feito

A estrutura é muito autoexplicativa. A seção de inicialização não é obrigatória. No entanto, a condição e o incremento têm maior prioridade.

Vamos colocá-lo em ação. Aqui está um script bash muito simplista que implementa o loop for.

para ((i = 0; i < 5 ; i++)); do
echo "olá mundo"
feito

Também é possível usar lista / intervalo como condição de loop. É especialmente útil se estiver trabalhando com uma lista de arquivos, intervalos de números, matrizes, saídas de comando, etc. A estrutura é mais ou menos assim.

para o item em ; Faz
# alguma coisa
feito

Por exemplo, o script a seguir imprimirá "hello world" cinco vezes.

para i em 1… 5; Faz
echo "olá mundo"
feito

E se precisarmos trabalhar com o conteúdo de um diretório? No exemplo a seguir, o script imprimirá todos os arquivos no diretório / usr / bin.

para i em / usr / bin / *; Faz
echo $ i
feito

Agora, o que fazemos para ter um loop for aninhado? É apenas um loop for dentro do outro. Aqui está um loop for aninhado usando o exemplo anterior.

para ((i = 0; i < 3 ; i++)); do
para ((j = 0; j < 2 ; j++)); do
echo "olá mundo"
feito
feito

A saída será “hello world” 6 vezes. O loop externo será executado três vezes, executando o loop interno duas vezes.

Loops while

O loop while é outro loop popular e intuitivo disponível no script bash. A sintaxe é parecida com esta.

enquanto ; Faz
# alguma coisa
feito

No exemplo a seguir, o script imprimirá "hello world" cinco vezes.

num = 1
enquanto [$ num -le 5]; Faz
echo "olá mundo"
num = $ (($ num + 1))
feito

Qual seria a aparência de ter um loop while aninhado? Aqui está um exemplo simples.

num_a = 1
num_b = 1
enquanto [$ num_a -le 5]; Faz
enquanto [$ num_b -le 5]; Faz
echo "olá mundo"
num_b = $ (($ num_b + 1))
feito
num_a = $ (($ num_a + 1))
feito

Até loops

Se você tem experiência em programação em C / C ++, então está familiarizado com o loop do-while. Infelizmente, o bash não tem nada parecido com isso. No entanto, até que o loop opere de maneira semelhante. A sintaxe também parece a mesma.

até [ ]; Faz
# alguma coisa
feito

A diferença entre o while e até o loop é a condição de teste. Enquanto a condição de teste for verdadeira, um loop while continuará em execução. Um loop até, no entanto, continuará em execução apenas se a condição for falsa.

Aqui está um exemplo rápido do loop while. Vai imprimir a tabuada de 2.

num_a = 1
até [$ num_a -gt 10]; Faz
echo $ (($ num_a * 2))
num_a = $ (($ num_a + 1))
feito

Loop break

Em certas situações, se certas condições forem atendidas, a execução do resto do loop torna-se redundante. As quebras de loop são um recurso interessante que permite interromper o loop em uma determinada condição. É mais importante para loops aninhados quanto mais altos os loops, mais consumo de recursos e ineficiência.

Aqui, o seguinte loop for irá parar de executar assim que atingir a condição.

para ((i = 1; i<=100;i++)); do
echo $ i
se [$ i -eq 10]; então
pausa
fi
feito

Confira como quebrar o loop while para obter uma explicação detalhada e demonstração de quebras de loop.

Pensamentos finais

Um loop aninhado é um conceito simples e poderoso para entender e implementar. Esperançosamente, este guia foi capaz de descrever e demonstrar o conceito.

Interessado em mais guias de script bash? Confira os seguintes guias.

  • Loop infinito Bash
  • Entrada do usuário do script Bash
  • Matriz de retorno de função Bash

Computação feliz!

Mecanismos de jogos gratuitos e de código aberto para o desenvolvimento de jogos Linux
Este artigo cobrirá uma lista de mecanismos de jogo gratuitos e de código aberto que podem ser usados ​​para desenvolver jogos 2D e 3D no Linux. Exist...
Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider é a décima segunda adição à série Tomb Raider - uma franquia de jogos de ação e aventura criada pela Eidos Montreal. O jogo ...
Como aumentar o FPS no Linux?
FPS significa Quadros por segundo. A tarefa do FPS é medir a taxa de quadros em reproduções de vídeo ou desempenho de jogos. Em palavras simples, o nú...