为什么这个shell脚本不起作用?

时间:2013-10-24 07:16:57

标签: linux shell

  n=5
  for i in {1..$[n]}
  do 
       echo $i
  done

它给出了:

{1..5}

但我认为应该输出:

1
2
3
4
5

为什么它会产生如此奇怪的输出?

1 个答案:

答案 0 :(得分:2)

这几乎是一个谜。在变量扩展之前,正在进行支撑的扩展。 bash初学者指南在expansion上有一些很好的细节 在bash中有很多方法可以做到这一点。 你可以从:

开始
n=5
for i in $(eval echo {1..$n})
do
   echo $i
done