如何在Bash中迭代一个由变量给定的数字范围?
我知道可以这样做(在Bash文档中称为“序列表达式”):
这是什么意思:
1 2 3 4 5
然而,我如何用变量替换范围的任一端点?这样做不起作用:
我知道可以这样做(在Bash文档中称为“序列表达式”):
for i in {1..5}; do echo $i; done
这是什么意思:
1 2 3 4 5
然而,我如何用变量替换范围的任一端点?这样做不起作用:
END=5
for i in {1..$END}; do echo $i; done
这将打印:
{1..5}
for i in {01..10}; do echo $i; done
会输出像01, 02, 03, ..., 10
这样的数字。 - toprmyarray=('a' 'b' 'c'); for i in ${!myarray[@]}; do echo $i; done
(注意感叹号)。 这比原来的问题更具体,但可能会有所帮助。 参见 bash 参数扩展。 - PlasmaBinturong