如何将定义的值作为shell中的循环调用

时间:2016-05-10 06:36:19

标签: linux shell

我在这里面临一个问题。我想用定义的值做一个循环。

list="-50..50"

for i in {$list}
  do ...

它只执行单个字符串

for i in -50..50
  do ...

我的愿望应该是

for i in {-50..50}
  do ...

1 个答案:

答案 0 :(得分:1)

正如您所看到的,您无法在bash的大括号扩展中使用变量,请使用seq,即序列程序,而不是这样:

$ low=10
$ high=20
$ for i in {low..high};do #treated as string
> echo $i
> done
{low..high}
$ for i in {$low..$high};do echo $i; done #values substituted but no brace expansion done by bash
{10..20}
$
$ for i in $(seq $low $high);do echo $i; done
10
11
12
13
14
15
16
17
18
19
20
$