序列”将数字序列打印到标准输出”,而且据我所知,它只能通过加法来增加计数器。
例如,
seq 0 3 10
0
3
6
9
告诉seq
我们从 0 到 10,增量为 3。
有什么方法可以用乘法代替加法吗?
seq-mult
一个会产生的赞扬
seq-mult 1 10 10000
1
10
100
1000
10000
答案1
作为 shell 脚本非常容易编程。
#!/bin/bash
i=$1
while [[ $i -le $3 ]]
do
printf "%d\n" $i
(( i *= $2 ))
done
这里绝对没有进行错误检查。 YMMV。
答案2
使用 for 循环你可以做类似的事情:
start=$1
incr=$2
end=$3
for ((i=start;i<=end;i*=incr)); do
printf '%d\n' "$i"
((i==0)) && break
done
答案3
灵感来自多纳尔24的回答,我已经编写了自己的“配方”,它在 makefile 中工作,提供了MIN_INPUT
,MAX_INPUT
并STEP
已定义:
range=$(MIN_INPUT); \
max=$(MAX_INPUT);\
step=$(STEP);\
while [ $$range -le $$max ];\
do\
range=`expr $$range \* $$step`;\
done