在bash for循环中使用命令行参数范围打印包含参数的括号

这可能是一个蹩脚的问题。 但是我从命令行得到3个参数[bash脚本]。 然后我试图在for循环中使用它们。

for i in {$1..$2} do action1 done 

这似乎并没有工作,如果$1"0"$22打印{0..2}' and calls action1`只有一次。 我提到了各种例子,这似乎是正确的用法。 有人可以告诉我什么需要在这里修复?

提前致谢。

怎么样:

 for i in $(eval echo {$1..$2}); do echo $i; done 

您可以使用${@:3}${@:3:8}对input进行切片,然后对其进行循环

例如,打印从3开始的参数

 for i in ${@:3} ; do echo $i; done 

或从3开始打印8个参数(所以参数3到10)

 for i in ${@:3:8} ; do echo $i; done 

使用$ @variables?

 for i in $@ do echo $i done 

如果你只是想使用第一和第二个参数,

 for i in $1 $2 

如果你的$ 1和$ 2是整数,你想创build一个范围,使用C for循环语法(bash)

 for ((i=$1;i<=$2;i++)) do ... done 

我有一个类似的问题。 我认为问题是在大括号'{}'中取消$ 1。 下面的替代工作对我来说..

 #!/bin/bash for ((i=$1;i<=$2;i++)) do ... done 

希望有所帮助。

 #/bin/bash for i do echo Value: $i done 

这将循环所有给脚本文件的参数。 请注意,循环variablesi后面没有“做”或其他任何事情。