Skip to content

Como escrever um BASH ‘para’ Loop

18 de maio de 2021

O que saber

  • Em uma festa para loop, todas as declarações entre Faz e feito são executados uma vez para cada item em uma lista ou intervalo de números.
  • Com uma lista grande, use dentro {lista} para fazer um loop entre um ponto inicial e um ponto final. Use reticências para iterar um intervalo de números completo, por exemplo, para número em {1..10}.
  • Para pular alguns números, adicione um terceiro número ao intervalo. Por exemplo, use {0..100..10} para listar apenas a cada dez números.

Em uma linguagem de programação ou script, o Bash oferece várias maneiras de repetir o código – um processo chamado looping – onde um para loop repete uma determinada seção do código. Isso permite que uma série de comandos sejam executados até que uma condição específica seja atendida. Neste guia, mostramos como escrever um Bash para Laço.

Como fazer um loop em uma lista

Linguagens de script como o Bash apresentam construções de programação semelhantes às de outras linguagens. Por exemplo, os parâmetros de importação obtêm entrada do teclado e armazenam essas entradas como variáveis, que então executam uma determinada ação com base no valor dos parâmetros de entrada. Considere um script de exemplo simples intitulado loop.sh: #! / bin / bash
para número em 1 2 3 4 5
Faz
echo $ number
feito
saída 0

A maneira Bash de usar para loops é um pouco diferente da forma como outras linguagens de programação e script tratam para rotações. Vamos analisar o roteiro. Em um BASH para loop, todas as declarações entre Faz e feito são executados uma vez para cada item da lista. Neste exemplo, a lista é tudo o que vem depois da palavra dentro-os números 1 2 3 4 5. Cada vez que o loop itera, o próximo valor da lista é inserido na variável especificada após a palavra para. No loop acima, a variável é chamada número. A instrução echo exibe informações na tela. Portanto, este exemplo pega os números de 1 a 5 e exibe cada número um por um na tela:

Como fazer um loop entre um ponto inicial e um ponto final

O problema com esse script loop.sh é que, se você quiser processar uma lista maior (por exemplo, 1 a 500), demorará muito para digitar todos os números. Em vez disso, especifique um ponto inicial e final: #! / Bin / bash
para número em {1..10}
Faz
echo “$ number”
feito
saída 0

As regras são as mesmas. Os valores após a palavra dentro compõe a lista para iterar, e cada valor na lista é colocado na variável (ou seja, número), e cada vez que o loop itera, as instruções entre Faz e feito são executadas. A principal diferença é a forma como a lista é formada. As chaves denotam um intervalo, e o intervalo, neste caso, é de 1 a 10 (os dois pontos separam o início e o fim de um intervalo). Este exemplo, portanto, percorre cada número entre 1 e 10 e exibe o número na tela. O mesmo loop poderia ter sido escrito assim, com sintaxe idêntica à do primeiro exemplo: para número em 1 2 3 4 5 6 7 8 9 10

Como pular números em um intervalo

O exemplo anterior mostrou como fazer um loop entre um ponto inicial e um ponto final. Veja como pular números no intervalo. Por exemplo, para fazer um loop entre 0 e 100, mas mostrar apenas cada décimo número, use o seguinte script para obter esta saída: #! / Bin / bash
para número em {0..100..10}
Faz
echo “$ number”
feito
saída 0

As regras são as mesmas. Há uma lista, uma variável e um conjunto de instruções a serem executadas entre Faz e feito. A lista desta vez se parece com esta: {0..100..10}. O primeiro número é 0 e o número final é 100. O terceiro número (10) é o número de itens na lista que ele irá ignorar. O exemplo acima, portanto, exibe a seguinte saída:

saída de loop bash alternativa

Um exemplo prático

Os loops For fazem mais do que iterar listas de números. Por exemplo, use a saída de outros comandos como a lista. O exemplo a seguir mostra como converter arquivos de áudio de MP3 para WAV: #! / Bin / bash
para arquivo em ./*.mp3
Faz
mpg -w ./wavs/”${file}”.wav “$ file”
feito

A lista neste exemplo é cada arquivo com a extensão .MP3 na pasta atual, e a variável é um arquivo. O comando mpg converte o arquivo MP3 em WAV. No entanto, você provavelmente precisará instalar esta ferramenta usando um gerenciador de pacotes primeiro.