Bash “for” loop para iterar através de uma matriz

Bash “for” loop para iterar através de uma matriz

Um loop "for" é uma parte fundamental de quase todas as linguagens de programação. Ajuda a escrever o código que você deseja repetir no número desejado de vezes. Para sistemas baseados em Linux, o Bash também apresenta sintaxe dedicada que permite que seus usuários aproveitem os loops para automatizar suas tarefas diárias por meio de scripts.

Embora você possa usar o loop "for" em um número praticamente infinito de cenários, este guia analisará três cenários básicos que você pode se conectar a cenários mais extensos e complexos para alcançar objetivos maiores. Vamos explorar três cenários básicos que empregam o loop for para iterar através de uma matriz.

Para demonstrar o funcionamento do loop "for", vou demonstrar os scripts do Bash usando o Ubuntu 22.04.

Criando o arquivo Bash

Antes de explorarmos os cenários, vamos criar nosso arquivo Bash, que conterá nosso script bash. Basta navegar para o diretório desejado no terminal e criar um arquivo usando o comando "nano" ou "touch".

Para este guia, vou criar um “teste.Arquivo SH "no meu diretório" documentos ".

Isso abrirá seu arquivo Bash usando o editor de texto Nano.

Aqui, você pode começar a escrever o código que deseja em seu arquivo de script. Vamos começar explorando os cenários.

Usando o loop "for" para exibir o conteúdo de uma matriz

Com o seu arquivo bash aberto no editor, podemos começar a adicionar código a ele. Para especificar que este é um arquivo bash, você precisa indicar o seguinte:

“#! /Bin/Bash ”

Primeiro, precisamos definir uma matriz e atribuir cinco valores a ele. Vamos atribuir os nomes John, Jane, Jim, Jack e Janis.

Agora vem a parte divertida; Precisamos configurar o loop for, que usando o iterador "eu" irá atingir o conteúdo da matriz e executar a função de exibição. Você pode fazer isso como tal:

Esta linha configura o loop. Com o símbolo "$", estamos especificando que estamos tentando acessar o valor do índice específico da matriz. O símbolo "@" refere -se ao índice da matriz, que contém o valor que estamos tentando acessar usando o iterador "i".

Em scripts de bash, a sintaxe determina que especificamos nossa função nas palavras -chave "fazer" e "feitas". Então, como estamos tentando exibir o conteúdo da matriz, digitaremos como mostrado abaixo:

Isso passará por todo o conteúdo da matriz e os exibirá um por um. Agora, nosso script se parece com o seguinte:

Pressione “Ctrl+O” para salvar o conteúdo deste arquivo de script e “Ctrl+X” para sair do editor Nano.

Executando o script

Com todo o código em vigor, você pode se perguntar como pode executar este código para ver a saída. No seu terminal, tipo:

Teste de $ bash.sh

Aqui, você pode ver os nomes exibidos como os definimos.

Usando o loop "for" para escrever o conteúdo de uma matriz em um arquivo de texto

Esse cenário funciona bem nos casos em que obtemos a saída de um cenário específico em uma matriz e temos que produzir o conteúdo da matriz para referência futura ou outro cálculo.

Então, vamos pegar o código que escrevemos no cenário anterior e modificá -lo. Em vez de imprimir cada entrada na matriz uma a uma, precisamos escrevê -la em um arquivo de texto. Abra seu arquivo de script usando:

$ nano teste.sh

Agora, como temos a matriz chamada “Writers”, estaremos escrevendo para um arquivo chamado “Writers.txt ”usando os símbolos >>. Portanto, seu código deve ficar assim:

Salvar e sair do arquivo para executar o script.

Executando o script

Semelhante ao cenário anterior, você pode executar o script atualizado usando:

Teste de $ bash.sh

Desta vez, quando você executa o código, você verá que não haverá saída no terminal. Isso ocorre porque o código está emitindo tudo para o arquivo de texto. Um arquivo de texto teria sido criado no mesmo diretório.

Ao abrir o arquivo (você pode clicar duas vezes no arquivo para abri-lo), verá que os nomes foram adicionados ao arquivo:

Usando o loop "for" para comparar uma determinada string com os elementos da matriz

Usaremos o mesmo script de bash para este cenário e estendemos ainda mais.

A principal estrutura do nosso código permanecerá a mesma, e precisaremos atualizar o conteúdo do código do loop. Usando o mesmo script, veremos se nosso nome fornecido corresponde a algum dos nomes da matriz; Se isso acontecer, vamos cumprimentá -los. Para os outros nomes da matriz, ele apenas os exibirá.

Vamos abrir nosso arquivo usando "Nano":

$ nano teste.sh

Agora, gostaríamos de atualizar o código entre as palavras -chave DO e FEAR para o seguinte:

Este código verificará no momento da execução se algum dos nomes na matriz da matriz "Janis", depois exibirá "Hi Janis". Caso contrário, basta exibir os nomes. Seu código deve ficar assim:

Para poder executar este código, você precisa salvar o arquivo e sair do editor de texto.

Executando o script

Quando você estiver de volta ao terminal, você pode usar o mesmo para executar seu script bash modificado:

Teste de $ bash.sh

Conclusão

Esses três são exemplos muito primitivos de usar o loop "for" em seus scripts de bash. Ao continuar aprendendo mais sobre o que esses scripts podem fazer, você verá que esse loop é muito útil e pode ser utilizado em códigos muito complexos. Para entender melhor os scripts e usá-lo em suas operações diárias, você precisa entender esses componentes básicos do código e o que a sintaxe faz.

Se você tiver algum problema com qualquer um desses cenários ou quiser aprender mais sobre loops ou scripts de ataque, sinta -se à vontade para nos envolver na seção de comentários e ficaremos felizes em ajudá -lo. Saúde.