在bash中迭代范围的方法是
for i in {0..10}; do echo $i; done
使用步骤迭代序列的语法是什么?说,我想在上面的例子中得到偶数。
答案 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