Bash for Loop em uma linha

Bash for Loop em uma linha
Em qualquer linguagem de programação ou script, o loop é um recurso por excelência. Os loops geralmente devem executar uma tarefa repetitiva até que uma determinada condição seja atendida. Bash é uma linguagem de script poderosa que suporta todos os principais recursos de uma linguagem de script (incluindo loops).

Este guia demonstra uma linha para loops em Bash.

Bash para loop

O Bash apresenta vários tipos de loop - para, enquanto e até. Cada tipo de loop vem com uma estrutura diferente. No entanto, os fundamentos permanecem os mesmos. Para iniciantes, este guia explica em profundidade sobre vários loops de bash e como implementá-los.

Como o título deste guia sugere, nosso foco estará no loop. Embora o loop geralmente exija várias linhas, podemos representá -lo em uma única linha se o loop for simples o suficiente. Esse processo, no entanto, requer uma compreensão dos fundamentos do Bash para um loop.

Para executar nossos códigos de bash, precisamos de um script de shell. Eu já tenho um script fictício para executar nossos códigos.

$ gat manequim.sh

Para estrutura de loop

Esta é a estrutura básica da festa para o loop.

para na [lista]
fazer
feito

Aqui está um exemplo rápido para loop implementando esta estrutura.

para i em 1… 5
fazer
eco "Número: $ i"
feito

Bash também suporta o estilo C para loop. Se você tiver um plano de fundo de programação em C, o estilo C para loop será fácil de entender.

para ((; ; ))
fazer
feito

Vamos colocar o estilo C para loop em ação.

para ((i = 1; i <= 5; i++)); do
eco "Número: $ i"
feito

Para o loop também pode funcionar com arquivos. No exemplo a seguir, o loop pesquisará todas as partições sob o disco “/dev/sda” e imprimirá tudo isso.

para i in /dev /sda*; fazer
eco "$ i"
feito

Uma linha para loop

Com o básico coberto, agora podemos comprimir loops em uma única linha. Basicamente, eliminaremos as novas linhas de todo o código de loop. Também podemos executar esses loops diretamente da linha de comando.

Vamos comprimir o primeiro exemplo. Se eliminarmos todas as novas linhas, o código ficará assim.

$ para i em 1… 5; ECHO "Número: $ i"; feito

Como você pode ver, todas as novas linhas são removidas. Em vez disso, essas novas linhas são substituídas por semicolons (;).

Podemos fazer o mesmo com o estilo C para loops.

$ para ((i = 1; i <= 5; i++)); do echo "number: $i"; done

Dê uma olhada no seguinte exemplo. Todos os arquivos de configuração dentro de “/etc.”Será copiado como um backup para o diretório“ ~/backup ”.

$ para i em /etc /*.conf; do cp $ i/home/viktor/backup; feito

Para loop com condicionais

Em muitos casos, um loop conterá condicionais para tomar decisões em vários pontos da repetição.

Aqui, o seguinte para o loop imprimirá todos os números pares dentro de um intervalo fixo.

para i em 1… 10; fazer
se [$ ((i%2) -eq 0]; então
eco "$ eu até"
fi
feito

É possível expressar todo esse loop em uma única linha. Assim como antes, substitua toda a nova linha por semicolons (;).

$ para i em 1… 10; faça se [$ ((i%2) -eq 0]; então ecoará "$ eu até"; fi; feito

É recomendável escrever o loop com espaçamento adequado primeiro. Depois que o loop é confirmado para funcionar corretamente, podemos comprimi -lo com segurança em uma única linha.

Exemplos diversos

Aqui está um punhado de uma linha para loops para referência.

$ para i em 1 2 3 4 5; ECHO "Número: $ i"; feito
$ para i na placa -mãe CPU GPU PSU; Echo "Parte do computador: $ i"; feito

O próximo exemplo será de um loop infinito.

$ para ((;;)); fazer eco "para o infinito!"; feito

Pensamento final

Este guia demonstra vários exemplos eficazes para exemplos de loop. É muito fácil transformar um loop normal em uma linha. Felizmente, depois de praticar esses exemplos, os leitores terão uma boa idéia de usar o Bash for Loop em uma linha.

Computação feliz!