n=5
for i in {1..$[n]}
do
echo $i
done
它给出了:
{1..5}
但我认为应该输出:
1
2
3
4
5
为什么它会产生如此奇怪的输出?
答案 0 :(得分:2)
这几乎是一个谜。在变量扩展之前,正在进行支撑的扩展。 bash初学者指南在expansion上有一些很好的细节 在bash中有很多方法可以做到这一点。 你可以从:
开始n=5
for i in $(eval echo {1..$n})
do
echo $i
done