Sil*_*ost 136 iteration bash range
在bash中迭代范围的方法是
for i in {0..10}; do echo $i; done
Run Code Online (Sandbox Code Playgroud)
使用步骤迭代序列的语法是什么?说,我想在上面的例子中得到偶数.
cha*_*aos 187
我会做
for i in `seq 0 2 10`; do echo $i; done
Run Code Online (Sandbox Code Playgroud)
(虽然当然seq 0 2 10会自己产生相同的输出).
请注意,seq允许浮点数(例如seq .5 .25 3.5),但bash的大括号扩展只允许整数.
The*_*sai 105
Bash 4的支撑扩展有一个步骤特征:
for {0..10..2}; do
..
done
Run Code Online (Sandbox Code Playgroud)
无论是Bash 2/3(C-style for loop,见上面的答案)还是Bash 4,我都更喜欢'seq'命令.
Fri*_*ner 65
纯粹的Bash,没有额外的过程:
for (( COUNTER=0; COUNTER<=10; COUNTER+=2 )); do
echo $COUNTER
done
Run Code Online (Sandbox Code Playgroud)
z *_* - 18
#!/bin/bash
for i in $(seq 1 2 10)
do
echo "skip by 2 value $i"
done
Run Code Online (Sandbox Code Playgroud)
$ 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
Run Code Online (Sandbox Code Playgroud)
小智 5
大括号扩展 {m..n..s} 比 seq 更有效。并且它允许一些输出格式:
$ echo {0000..0010..2}
0000 0002 0004 0006 0008 0010
Run Code Online (Sandbox Code Playgroud)
如果有人对文件进行编号,并且想要“ls”的排序输出,那么这很有用。