Como produzir um intervalo com o passo n no bash?(gera uma sequência de números com incrementos)




range iteration (4)

A expansão de chaves do Bash 4 possui um recurso de etapa:

for {0..10..2}; do
  ..
done

Não importa se Bash 2/3 (estilo C para loop, veja as respostas acima) ou Bash 4, eu prefiro qualquer coisa sobre o comando 'seq'.

A maneira de percorrer um intervalo no bash é

for i in {0..10}; do echo $i; done

Qual seria a sintaxe para iterar a sequência com um passo? Diga, eu gostaria de obter apenas um número par no exemplo acima.


Bash puro, sem um processo extra:

for (( COUNTER=0; COUNTER<=10; COUNTER+=2 )); do
    echo $COUNTER
done

#!/bin/bash
for i in $(seq 1 2 10)
do
   echo "skip by 2 value $i"
done

> seq 4
1
2
3
4

> seq 2 5
2
3
4
5

> seq 4 2 12
4
6
8
10
12

> seq -w 4 2 12
04
06
08
10
12

> seq -s, 4 2 12
4,6,8,10,12




iteration