Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在Bash脚本中使用输入参数的数值_Linux_Bash_Command Line Arguments - Fatal编程技术网

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

Linux 在Bash脚本中使用输入参数的数值,linux,bash,command-line-arguments,Linux,Bash,Command Line Arguments,我希望使用我传递给bash脚本的输入参数的数值,如下所示: #!/bin/bash NUM=$2 for i in {1..$NUM}; do echo $i done /script\u pb3.sh out.txt 3 在这里,我想采用我传递的第二个参数(即值3),并将其用作脚本中的数值,如下所示: #!/bin/bash NUM=$2 for i in {1..$NUM}; do echo $i done 但当我运行它时,我得到的是 {1..3}

我希望使用我传递给bash脚本的输入参数的数值,如下所示:

#!/bin/bash
NUM=$2

for i in {1..$NUM}; do
        echo $i
done
/script\u pb3.sh out.txt 3

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

#!/bin/bash
NUM=$2

for i in {1..$NUM}; do
        echo $i
done
但当我运行它时,我得到的是

{1..3}
而不是

1
2
3
你能解释一下为什么会发生这种情况以及解决办法吗?我认为这个问题旨在将字符串值转换为整数值,但我不确定。非常感谢您的帮助


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

我认为您必须使用seq

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


因此,您要寻找的是:seq 1$2

使用:
((i=1;这确实解决了问题。谢谢!这也是一个合法的答案。请将seq编辑成
seq 1$2
,这样我就可以接受你对我的问题的回答。你链接到的页面包含许多有疑问、不必要和/或过时的建议。在这种情况下,
seq
是不必要的(非标准的)外部要求当
bash
本身已经有了一个更高效的C风格循环。我只是想给出一个我觉得最接近手头问题的答案。如果你觉得不一样,请随意发布一个你觉得更好的答案