是否可以在 Bash 的计数括号中使用变量?

use*_*369 6 bash arithmetic

我正在寻找我遇到的 Bash 4 问题的解决方案。

Bash 4 能够使用前导零进行迭代。

对于线路:

for i in {001..005}; do echo -n $i" ";done;echo
Run Code Online (Sandbox Code Playgroud)

输出是

001 002 003 004 005
Run Code Online (Sandbox Code Playgroud)

但是当我尝试这个时:

a="005"; for i in {001..${a}}; do echo $i;done
Run Code Online (Sandbox Code Playgroud)

或类似的东西,结果是:

{001..005}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

Hau*_*ing 5

您的问题是应用大括号扩展和变量扩展的顺序。您必须强制执行相反的顺序:

a=005
eval echo {001..$a}
Run Code Online (Sandbox Code Playgroud)