用变量top-end编写一个bash for-loop

abe*_*nky 15 unix linux bash for-loop

我经常使用众所周知的语法在bash中编写for循环:

for i in {1..10}  [...]
Run Code Online (Sandbox Code Playgroud)

现在,我正在尝试编写一个顶部由变量定义的地方:

TOP=10
for i in {1..$TOP} [...]
Run Code Online (Sandbox Code Playgroud)

我尝试了各种各样的parens,花括号,评估等,并且通常会收到错误的"错误替换".

如何编写for-loop以使限制取决于变量而不是硬编码值?

anu*_*ava 28

您可以像这样使用for循环来迭代变量$TOP:

for ((i=1; i<=$TOP; i++))
do
   echo $i
   # rest of your code
done
Run Code Online (Sandbox Code Playgroud)


Kev*_*vin 9

如果你有一个gnu系统,你可以seq用来生成各种序列,包括这个.

for i in $(seq $TOP); do
    ...
done
Run Code Online (Sandbox Code Playgroud)