有时shell的入参个数不定,想要获得第2位后的参数,作为新的入参调用其他脚本
通常这时候想到的方法是用遍历,例如下面的方法:
for (( i=2;i<=$#;i++))
do
echo $i
done
更简便的方法:使用shift去移动参数,shift (n),默认n为1,移动的位数
shift会将n位前的入参舍弃掉,只会保留n+1以及他后面的入参
例如:shift 2,会舍弃第一位第二位入参,只保留第3位及以后的入参
执行 test.sh 1 2 3 4 5 6 7 8 9,test.sh的脚本以及执行结果如下
./test 1 2 3 4 5 6 7 8 9
++ echo 1
1
++ shift
++ echo 2
2
++ echo 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9
++ shift 2
++ echo 4 5 6 7 8 9