我已经得到以下工作:
for i in {2..10} do echo "output: $i" done
但是,尝试运行以下操作:
max=10 for i in {2..$max} do echo "$i" done
产生以下:
output: {2..10}
我如何让编译器实现它应该将$ max作为数组的另一端,而不是字符串的一部分?
括号扩展,{x..y}在其他扩展之前执行,因此您不能将其用于可变长度序列。
相反,使用seq 2 $ max方法作为mobrule声明。
所以,对于你的例子,它将是:
max=10 for i in `seq 2 $max` do echo "$i" done