在bash for循环中使用命令行参数范围打印包含参数的括号
这可能是一个蹩脚的问题。 但是我从命令行得到3个参数[bash脚本]。 然后我试图在for循环中使用它们。
for i in {$1..$2} do action1 done
这似乎并没有工作,如果$1
是"0"
和$2
是2
打印{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后面没有“做”或其他任何事情。