当变量给出范围时,如何在Bash中迭代一系列数字?
我知道我可以这样做(在Bash 文档中称为"序列表达式" ):
for i in {1..5}; do echo $i; done
Run Code Online (Sandbox Code Playgroud)
这使:
1
2
3
4
5
但是,如何用变量替换任何一个范围端点?这不起作用:
END=5
for i in {1..$END}; do echo $i; done
Run Code Online (Sandbox Code Playgroud)
哪个印刷品:
{} 1..5
我一次又一次地看到Bash在Stack Overflow上使用eval
的答案,并且答案得到了抨击,双关语是为了使用这种"邪恶"结构.为什么eval
这么邪恶?
如果eval
不能安全使用,我应该使用什么呢?