我在这里面临一个问题。我想用定义的值做一个循环。
list="-50..50"
for i in {$list}
do ...
它只执行单个字符串
for i in -50..50
do ...
我的愿望应该是
for i in {-50..50}
do ...
答案 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
$