我的代码:
#!/bin/bash
for i in $@;
do echo $i;
done;
运行脚本:
# ./script 1 2 3
1
2
3
所以,我想跳过第一个参数并得到:
# ./script 1 2 3
2
3
答案 0 :(得分:32)
使用偏移参数展开
#!/bin/bash
for i in "${@:2}"; do
echo $i
done
$ func(){ for i in "${@:2}"; do echo "$i"; done;}; func one two three
two
three
答案 1 :(得分:17)
使用shift
命令。 (抱歉,无法发布代码,现在没有bash访问权限。)
FIRST_ARG="$1"
shift
REST_ARGS="$@"
答案 2 :(得分:2)
查看bash联机帮助页中的参数扩展。
#/bin/bash
for i in "${@:2}"
do echo $i
done
答案 3 :(得分:1)
你可以让变量测试它是否是第一个带有这样的东西的参数(未经测试):
#!/bin/bash
FIRST=1
for i in $@
do
if [ FIRST -eq 1 ]
then
FIRST=0
else
echo $i
fi
done