[root@vm1 scripts]# help shift
shift: shift [n]
Shift positional parameters.
Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is
not given, it is assumed to be 1.
Exit Status:
Returns success unless N is negative or greater than $#.
说明:
1)在程序中每使用一次shift语句,都会使所有的位置参数依次向左移动默认的一个位置。
2)如果N没有提供的话,就是默认向左移动一个位置。如果给了N,shift N语句,就是向左移动N个位置。
例如:shift 5:就是向左移动5个位置。
看一个小例子:
[root@vm1 scripts]# cat n5.sh
echo $1 $2
if [ $# -eq 2 ];then
shift
echo $1
fi
[root@vm1 scripts]# sh n5.sh arg1 arg2
arg1 arg2
arg2
说明:shift语句执行之后,左移一位,也就是$2变成了$1, $1消失。然后再echo $1。但是输出的是传参时的$2的值。
shift会给编程带来一些方便。
再看一个例子:
如果看到好的例子,可以补充到这个博客中。