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

它给:

{1..5}

但我认为它应该输出:

1
2
3
4
5

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

4

1 回答 1

2

这几乎是一个谜。大括号的扩展是在变量扩展之前完成的。bash 初学者指南有一些关于扩展的很好的细节。 在 bash 中有很多方法可以做到这一点。你可以从:

n=5
for i in $(eval echo {1..$n})
do
   echo $i
done
于 2013-10-24T07:35:00.010 回答