在 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
我想像这样使用传递给 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