ru4*_*514 55 bash command-line arguments loops for-loop
这可能是一个蹩脚的问题.但我从命令行[bash script]得到3个参数.然后我试图在for循环中使用它们.
for i in {$1..$2}
do action1
done
Run Code Online (Sandbox Code Playgroud)
这似乎并没有工作,虽然,如果$1是"0"和$2是2它打印{0..2}' and callsaction1`只有一次.我提到了各种例子,这似乎是正确的用法.有人可以告诉我这里需要修复什么吗?
提前致谢.
Vij*_*der 72
您可以使用${@:3}或切片输入${@:3:8},然后循环它
例如,打印从3开始的参数
for i in ${@:3} ; do echo $i; done
Run Code Online (Sandbox Code Playgroud)
或者从3开始打印8个参数(因此,参数3到10)
for i in ${@:3:8} ; do echo $i; done
Run Code Online (Sandbox Code Playgroud)
zxt*_*zxt 64
怎么样:
for i in $(eval echo {$1..$2}); do echo $i; done
Run Code Online (Sandbox Code Playgroud)
kur*_*umi 17
使用$ @变量?
for i in $@
do
echo $i
done
Run Code Online (Sandbox Code Playgroud)
如果你只是想使用第一个和第二个参数,那么
for i in $1 $2
Run Code Online (Sandbox Code Playgroud)
如果您的$ 1和$ 2是整数并且您想要创建范围,请使用C for循环语法(bash)
for ((i=$1;i<=$2;i++))
do
...
done
Run Code Online (Sandbox Code Playgroud)
小智 8
我遇到了类似的问题.我认为问题是在大括号'{}'内取消引用$ 1.以下替代方案对我有用..
#!/bin/bash
for ((i=$1;i<=$2;i++))
do
...
done
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.