Como usar o comando bash for loop: sintaxe e exemplos
O Bash for loop é um comando da linguagem Bash que permite executar um trecho de código várias vezes de forma automática. Ele é muito útil para lidar com tarefas repetitivas, tornando a administração do sistema mais rápida e eficiente.
Na prática, o Bash for loop funciona atribuindo os itens de uma lista a uma variável e executando um ou mais comandos para cada um desses itens. A sintaxe básica é a seguinte:
for VARIAVEL in 1 2 3 4 5 .. N Execute o comando abaixo: comando1 comando2 comandoN done
No dia a dia, o bash for loop pode ser aplicado em diferentes situações e combinado com outros conceitos de programação. É possível, por exemplo, criar um loop com três expressões, um loop infinito, ou até definir sequências que começam e param em um ponto específico.
Continue a leitura para entender melhor como usar o Bash for loop e conferir exemplos práticos.
Conteúdo
O que é Bash for loop?
Um Bash for loop é uma construção que permite executar um conjunto de comandos repetidamente sobre vários itens com apenas uma execução. Ele é especialmente útil para automatizar tarefas repetitivas em sistemas baseados em linha de comando, como um servidor virtual privado (VPS) Linux — por exemplo, renomear vários arquivos de uma só vez.
A lógica por trás de um Bash for loop funciona assim: um conjunto de comandos continua sendo executado em loop para cada item listado em uma variável. O processo termina apenas depois que o último item é processado.
De forma simples, é como dizer: para (for) cada item atribuído à variável, repita (loop) o mesmo conjunto de comandos. No entanto, também é possível usar declarações condicionais para modificar a forma como o loop será executado.
Na próxima seção, vamos analisar a sintaxe de um Bash for loop linha por linha para entender melhor como ele funciona.
Qual é a sintaxe de um Bash for loop?
O Bash for loop executa um conjunto de comandos repetidamente, percorrendo uma sequência de valores ou itens. A sintaxe básica é a seguinte:
for VARIAVEL in 1 2 3 4 5 .. N Execute o comando abaixo: comando1 comando2 comandoN done
No mundo real, esta sintaxe ficaria parecida com o exemplo abaixo:
#!/bin/bash for i in 1 2 3 4 5 do echo "Hello $i" done
Executar o arquivo bash irá gerar o seguinte texto:
Hello 1 Hello 2 Hello 3 Hello 4 Hello 5
Vamos inspecionar cada elemento:
- #!/bin/bash – mostra que é código é um script bash.
- i – é uma marcação para uma variável. Enquanto que $i é o valor individual da variável. Você também pode escrevê-lo como c/$c ou outro nome.
- in – separa a variável e os itens que seguem.
- 1 2 3 4 5 – é um exemplo de itens que você quer basear a instrução.
- do – é a palavra chave que inicia os loops. Ele, então, irá executar a instrução n vezes, sendo n o número total de itens. Aqui, o valor de n é 5.
- echo “Hello: $i” – é o comando Linux ou operação que será repetido n vezes. Lembre-se que aspas transformam qualquer coisa em uma variável.
- done – encerra o loop.
Além da sintaxe acima, há outras duas variações comuns:
for VARIAVEL in file1 file2 file3 do comando1 em $VARIAVEL comando2 comandoN done
E também:
for OUTPUT in $(Linux-Or-Unix-Command-Here) do comando1 em $OUTPUT comando2 em $OUTPUT comandoN em $OUTPUT done

Agora que entendemos a sintaxe do Bash for loop, vamos ver exemplos práticos de como esses scripts são aplicados no dia a dia.
Exemplos de Bash for loop
A seguir, alguns exemplos de Bash for loop usados para executar várias operações de forma automática. Para acompanhar os testes, primeiro você precisará acessar seu VPS. Caso tenha dificuldades, confira nosso tutorial sobre como usar o PuTTY para SSH.
Se você ainda não tem familiaridade com Bash, recomendamos também nosso guia sobre bash scripting. Lembre-se de que funções Bash precisam estar em um arquivo com extensão .sh. Para criar um, use o comando abaixo no terminal:
vim NomeArquivo.sh
Isto irá criar um arquivo .sh, e irá abri-lo com o editor VIM. Para aprender mais sobre isso, não deixe de conferir o guia básico mencionado acima.
Como usar um Bash for loop com números
Um Bash for loop com números permite iterar por um intervalo sem precisar especificar cada item individualmente. Para isso, basta usar chaves {} com dois pontos duplos para indicar o intervalo.
Por exemplo, o loop abaixo imprime os números de 1 a 5:
for i in {1..5} do echo "$i" done
Também é possível definir um incremento usando a sintaxe de três expressões {INICIO..FIM..INCREMENTO}. Veja o exemplo:
for i in {1..10..2} do echo "Número: $i" done
Importante! Em alguns scripts, a sintaxe de incremento pode aparecer com parênteses duplos em vez de chaves, mas a função é a mesma.
No exemplo acima, o loop começa no valor 1, soma 2 a cada iteração (1, 3, 5, 7, 9) e para quando atinge o valor final definido, que é 10. A saída será:

Tenha em mente o recurso de intervalos {1..5} está disponível a partir da versão 3.0 do Bash. Já a sintaxe com incremento {1..10..2} só é suportada a partir da versão 4.0.
Como usar um Bash for loop com elementos de array
Combinar um Bash for loop com arrays permite iterar sobre elementos agrupados e executar um conjunto de comandos para cada um deles. Em vez de usar uma lista solta de itens, trabalhar com arrays deixa o script mais organizado e fácil de ler — especialmente quando você precisa lidar com muitos valores.
Para usar um Bash for loop com array, primeiro declare o array com os itens desejados. Em seguida, adicione-o à expressão for-in, como no exemplo abaixo:
# Declarar um array de itens array=("item1" "item2" "item3" "item4") # Iterar pelo array e aplicar comandos for item in "${array[@]}" do comando1 comando2 comando3 done
Aqui está um exemplo de Bash for loop com elementos de array, usando frutas como itens:
fruit_array=("apple" "banana" "red cherry" "green grape") for fruit in "${fruit_array[@]}" do echo "Fruit: $fruit" done
O loop Bash vai percorrer cada elemento do array e usar o comando echo para exibi-los com o prefixo Fruit:

Se você adicionar outro comando dentro do loop, ele será executado no mesmo item antes de passar para o próximo. Veja o exemplo, em que incluímos outro echo para adicionar um sufixo:

Como usar um Bash for loop com uma variável de shell
Combinar um Bash for loop com uma variável de shell permite armazenar itens que o código irá percorrer. Ele funciona de forma semelhante a um array, já que agrupa múltiplos elementos, mas nesse caso os itens são separados por espaços.
Um Bash for loop com variável de shell usa a seguinte sintaxe:
# Definir a variável de shell variable="a single item" # Iterar pela variável e aplicar comandos for item in $variable do comando1 comando2 comando3 done
A variável de shell acima contém apenas um elemento, mas o loop Bash automaticamente percorre os itens separados por espaço, tratando cada um como uma entidade diferente. Veja este exemplo:
var_numbers="1 2 3 4 5" for number in $var_numbers do echo "Number: $number" done
Em vez de imprimir todos os números como uma única string, o loop Bash os exibe individualmente, pois cada valor está separado por um espaço. Para tratar todos os itens como uma única entidade, basta colocar a variável $var_numbers entre aspas na expressão for-in, assim:
for number in "$var_numbers"

O comportamento das variáveis no Bash pode ser ajustado para alterar a forma como o loop exibe os resultados.
Como usar um Bash for loop com strings
Combinar um Bash for loop com strings permite iterar sobre textos para realizar operações, como concatenação. Normalmente, as strings são agrupadas em uma variável de shell ou em um array.
Usar uma variável de shell é mais comum quando as strings não contêm espaços. Veja a sintaxe:
variable="string1 string2 string3" for item in $variable do comando1 comando2 comando3 done
Por outro lado, utilize um Bash for loop com strings agrupadas em um array se os textos contiverem espaços. Além de permitir que o loop leia corretamente os itens separados, o uso de arrays facilita a iteração e a expansão. A sintaxe é a seguinte:
array=("Primeiro item" "Segundo item" "Terceiro item" "Quarto item") for item in "${array[@]}" do comando1 comando2 comando3 done
Como usar um Bash for loop para criar um loop de três expressões
Usar um Bash for loop para criar um loop de três expressões segue uma estrutura semelhante à da linguagem C. Essa estrutura é composta por três partes: um inicializador (EXP1), uma condição (EXP2) e um passo de contagem (EXP3).
O inicializador define a variável inicial do script, e a condição determina se o loop continua ou não. Já o passo de contagem altera o valor inicial até que atenda à condição especificada. A sintaxe desse loop é a seguinte:
for (( EXP1; EXP2; EXP3 )) do comando1 comando2 comando3 done
Como exemplo prático, veja o exemplo abaixo:
#!/bin/bash for (( c=1; c<=5; c++ )) do echo "The number $c" done
O código define o valor inicial do loop como 1. O loop será executado enquanto a condição em EXP2 for verdadeira – a variável não deve ser maior que 5. A expressão de contagem usa o sinal ++, que incrementa o valor inicial em um a cada execução do loop.
O script Bash exibirá a mensagem “$c”, que se refere ao valor do loop, começando em 1 até atingir a condição especificada. A saída será a seguinte:

Como usar um Bash for loop para criar um loop infinito
Criar um loop infinito usando um Bash for loop permite executar código indefinidamente até que você finalize o processo manualmente pressionando Ctrl + C. Há diferentes maneiras de fazer isso, como usando a expressão while:
while true do echo "Hello, world!" sleep 1 done
Quando a condição é verdadeira, o comando imprimirá a mensagem Hello, world! com um atraso de um segundo. O trecho utiliza a declaração condicional while true para garantir que o código sempre retorne o status de saída bem-sucedido.
Como a condição permanece verdadeira, o código continuará repetindo o comando echo para exibir a mensagem. Outro método é usar o loop infinito de três expressões:
for (( ; ; )) do echo "Hello, world!" sleep 1 done
No trecho acima, todas as expressões foram deixadas em branco. Como não há uma condição de término a ser atendida, o loop continuará rodando até que o usuário o interrompa.

Como usar um Bash for loop para criar um loop com skip e continue
Um Bash for loop permite criar um loop que ignora um valor específico e continua executando depois disso. Essa operação usa a seguinte sintaxe:
for i in 1 2 3 4 5 do if [condition] then # Continua para a próxima iteração de i e ignora a instrução continue fi statement done
Aqui está um exemplo de código de loop com skip e continue:
for i in {1..5} do if [[ "$i" == '4' ]] then continue fi echo "Hello $i" done
No trecho acima, definimos os itens como os números de um a cinco. Adicionamos uma condição if que determina que, quando o valor da variável for igual a 4, o loop não executa o código e passa para o próximo valor. Isso significa que o loop rodará com 1, 2, 3 e 5, como mostra a saída:

Como usar um Bash for loop para criar uma saída condicional com break
Um Bash for loop permite criar um loop que para automaticamente quando encontra uma condição específica, usando a construção for-in com a seguinte sintaxe:
for i in 1 2 3 4 5 do if [condition] then break fi statement done
Você pode adicionar outro comando no final do código, que será executado depois que o loop terminar. Veja o exemplo:
for state in Alabama Alaska Arizona Arkansas California do if [[ "$state" == 'Arkansas' ]]; then break fi echo "state: $state" done echo "That’s all!"
O script imprime todos os nomes dos estados definidos na lista, mas para assim que a condição do break é atendida, ou seja, quando o valor atual for igual a Arkansas. Em seguida, o código passa para a próxima instrução e exibe a mensagem That’s all!.

Como usar scripts Bash de maneira eficaz no VPS da Hostinger
Usar um Bash for loop junto com os recursos do seu provedor de hospedagem pode simplificar ainda mais as tarefas de administração do servidor, tornando o processo mais eficiente.
Por exemplo, os planos de VPS da Hostinger contam com um terminal no navegador integrado ao nosso painel de controle personalizado, o hPanel. Ele permite executar comandos Linux e utilitários como o Bash loop diretamente do seu navegador.

Também oferecemos o Kodee, nosso assistente de inteligência artificial que facilita a gestão de VPS para iniciantes. Você pode, por exemplo, pedir para ele gerar scripts de Bash for loop para diferentes tarefas usando prompts simples, como “Pode gerar um Bash for loop que reinicie uma lista de serviços?” ou “Crie um Bash for loop para fazer backup de múltiplos diretórios”.

Para acessar a ferramenta, faça login no hPanel e clique em VPS no menu superior. Depois, selecione o servidor desejado e navegue até Kodee na barra lateral. Para obter resultados mais precisos, certifique-se de que seus prompts de desenvolvimento sejam específicos e claros.
Importante! Devido a limitações de IA, algumas respostas podem estar desatualizadas ou imprecisas.
Próximos passos
Um Bash for loop é excelente para automatizar tarefas repetitivas, processar dados e gerenciar sistemas baseados em UNIX. Com uma única execução, por exemplo, você pode iterar sobre nomes para criar novos usuários automaticamente ao configurar um VPS.
Como vimos, é possível realizar diferentes operações com um Bash for loop combinando-o com outras construções do Bash, como o for-in. Além disso, você pode ampliar ainda mais sua funcionalidade incorporando outras ferramentas de linha de comando, criando uma forma eficiente de concluir tarefas.
Agora que você entende os conceitos básicos de um Bash for loop, é hora de praticar no dia a dia. Se você usa o VPS da Hostinger, pode pedir ao Kodee para escrever ou explicar scripts de Bash for loop, tornando o aprendizado mais intuitivo e ajudando a se familiarizar rapidamente.