在 Bash 脚本中使用输入参数的数值

Use numeric value of input argument in Bash script

我想像这样使用传递给 bash 脚本的输入参数的数值:

./script_pb3.sh out.txt 3

在这里,我想采用我传递的第二个参数(即值 3)并将其用作脚本中的数值,如下所示:

#!/bin/bash
NUM=

for i in {1..$NUM}; do
        echo $i
done

但是当我 运行 我得到的只是

{1..3}

而不是

1
2
3

您能否解释为什么会发生这种情况以及解决方法?我认为这个问题旨在将字符串值转换为整数值,但我不确定。非常感谢任何帮助。

编辑:答案 from here 包含关于我的问题的答案的辩论(即假设答案是已知的),但它不是我问题的答案,因此我没有在我的第一次搜索中找不到它。不过还是谢谢你指出来。

我认为你必须使用 seq

for i in `seq 1 10`;
 do
    echo $i
 done    

参考:http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html

所以,你要找的是:seq 1 $2