shift命令来自英文单词“移动”,其功能是用于向左移动参数。Linux命令能够一次性接收多个参数,可能是0个,也可能是5个,又或是15个,那么该如何逐一处理这些参数呢?

shift能够将命令接收到的参数逐个向左移动一位,即原本的$3变量会覆盖$2变量,原本的$2变量会覆盖$1变量,这样我们只需要每执行一次shift命令后调用$1变量,就能够实现对全部参数的处理工作了。

语法格式:shift [参数]

常用参数:

数字向左移动的个数

参考实例

编写一个脚本,逐一输出在执行shift命令后的$1变量值,直至清空全部参数:

[root@linuxcool ~]# cat File.sh 
#!/bin/bash
while [ $# != 0 ] ; do
	echo "$1"
	shift
done
[root@linuxcool ~]# ./File.sh AA BB CC DD
AA
BB
CC
DD

将参数向左移动2位:

[root@linuxcool ~]# cat File.sh
#!/bin/bash
while [ $# != 0 ] ; do
	echo "$1"
	shift 2
done
[root@linuxcool ~]# ./File.sh AA BB CC DD
AA
CC
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。