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

时间:2009-06-08 17:31:56

标签: bash range iteration

在bash中迭代范围的方法是

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

使用步骤迭代序列的语法是什么?说,我想在上面的例子中得到偶数。

5 个答案:

答案 0 :(得分:176)

我会做

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

(当然seq 0 2 10会产生相同的输出)。

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

答案 1 :(得分:89)

Bash 4 的大括号扩展有一个步骤功能:

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

无论是Bash 2/3(C-style for loop,见上面的答案)还是Bash 4,我都更喜欢'seq'命令。

答案 2 :(得分:57)

Pure Bash,没有额外的过程:

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

答案 3 :(得分:17)

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

答案 4 :(得分:1)

> 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