Bash for变量循环

时间:2019-04-11 10:32:21

标签: bash

我正在尝试在bash中编写一个for循环,以便可以将数字从1迭代到大于10的数字。在数字只有一位的情况下,应在其中添加零它的左侧(如01)。

我为此找到的解决方案是:

for i in 0{1..9} {10..43}; do
        echo "stuff$i.txt"
done

这可行,但是我想将上限作为变量,所以我尝试了这一点:

max_test=43

for i in 0{1..9} {10..$max_test}; do
        echo "stuff$i.txt"
done

运行此脚本时,该脚本会打印出来

stuff01.txt

stuff02.txt

...

stuff09.txt

stuff{10..43}.txt

我找到了this answer,但是在我的情况下,由于该一位数字的条件,我需要2个for循环。做我想要的最好的方法是什么?

提前谢谢

1 个答案:

答案 0 :(得分:1)

您不能在括号扩展中使用变量,因为括号扩展是在变量扩展之前完成的。您可以使用seq例如

max=43
seq -w 1 "$max"