shift命令

Last Updated: 2023-07-07 08:12:14 Friday

-- TOC --

位置参数可以用shift命令进行左移,并相应减少参数数量,即$#的值。

比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。

$ set 1 2 3 4 5 a b c
$ echo $# $1
8 1
$ shift
$ echo $# $1; shift
7 2
$ echo $# $1; shift
6 3
$ echo $# $1; shift
5 4
$ echo $# $1; shift
4 5
$ echo $# $1; shift
3 a
$ echo $# $1; shift
2 b
$ echo $# $1; shift
1 c
$ echo $# $1; shift
0

一次移动多个位置:

$ set 1 2 3 4 5 a b c
$ shift 5
$ echo $# $1 $2 $3
3 a b c

shift 0,什么都不做,shift返回成功。

当shift的数量大于参数个数时,shift返回失败,用$?获取。

本文链接:https://cs.pynote.net/sf/linux/shell/202201051/

-- EOF --

-- MORE --