迭代linux shell中的参数列表

时间:2011-10-01 13:21:26

标签: linux shell

我想迭代shell中的参数列表,我知道如何用

执行此操作
for var in $@

但我想用

做这件事
for ((i=3; i<=$#; i++))

我需要这个,因为前两个参数不会进入循环。谁知道怎么做?期待你的帮助。

3 个答案:

答案 0 :(得分:10)

这可能会有所帮助:

for var in "${@:3}"

有关详细信息,请查看:

http://www.ibm.com/developerworks/library/l-bash-parameters/index.html

答案 1 :(得分:4)

reader_1000 provides a nice bash incantation,但是如果你使用的是旧的(或更简单的)Bourne shell,你可以使用古老的吱吱声(因此非常便携)

VAR1=$1
VAR2=$2
shift 2
for arg in "$@"
...

答案 2 :(得分:1)

虽然这是一个老问题,但还有另一种方法可以做到这一点。而且,也许这就是你要求的。

for(( i=3; i<=$#; i++ )); do  
    echo "parameter: ${!i}"  #Notice the exclamation here, not the $ dollar sign.
done