如何在bash中生成步骤n的范围? (用增量生成一个数字序列)

在bash中迭代范围的方法是

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

用一个步骤迭代序列的语法是什么? 说,我想在上面的例子中只有偶数。

我会做

 for i in `seq 0 2 10`; do echo $i; done 

(尽pipe当然seq 0 2 10将自己产生相同的输出)。

请注意, seq允许浮点数(例如, seq .5 .25 3.5 ),但bash的大括号扩展只允许整数。

Bash 4的大括号扩展有一个特点:

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

无论Bash 2/3(C风格for循环,见上面的答案)还是Bash 4,我都会比'seq'命令更喜欢什么。

纯Bash,没有额外的过程:

 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