在bash中从给定的起点和终点创建一个数组

时间:2019-01-22 20:52:56

标签: arrays bash

我有这个有效的代码:

$ array=( {100..300..100} )
$ for k in ${array[@]} ; do echo $k ; done
100
200
300

我想参数化起点和终点(以及增量,因为为什么不这样?) 我尝试过:

$ low=100
$ high=300
$ incr=100
$ array=( {$low..$high..$incr} )

但这没用:

$ for k in ${array[@]} ; do echo $k ; done
{100..300..100}

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

来自bash手册:

  

序列表达式的格式为{x..y[..incr]},其中x和y是整数或单个字符,而incr(可选的增量)是整数

因此,不会在xyincr上执行参数和变量扩展。您应该使用seq

arr=( $(seq $low $incr $high) )