本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名原文链接~~~

Shell脚本编程(9)之使用shift命令移动变量

微信搜索 zze_coding 或扫描 👉 二维码关注我的微信公众号获取更多资源推送:


本部分内容参考自《Linux命令行与shell脚本编程大全 第3版》。

bash shell 工具箱中另一件工具是 shift 命令。 bash shell 的 shift 命令能够用来操作命令行参数。跟字面上的意思一样, shift 命令会根据它们的相对位置来移动命令行参数。
在使用 shift 命令时,默认情况下它会将每个参数变量向左移动一个位置。所以,变量 $3 的值会移到 $2 中,变量 $2 的值会移到 $1 中,而变量 $1 的值则会被删除(注意,变量 $0 的值,也就是程序名,不会改变)。
这是遍历命令行参数的另一个好方法,尤其是在你不知道到底有多少参数时。你可以只操作第一个参数,移动参数,然后继续操作第一个参数。
这里有个例子来解释它是如何工作的。

$ cat test21.sh 
#!/bin/bash
count=1
while [ -n "$1" ]
do
	echo "Parameter #$count = $1"
	count=$[ $count + 1 ]
	shift
done
$ ./test21.sh 1 2 3 
Parameter #1 = 1
Parameter #2 = 2
Parameter #3 = 3

这个脚本通过测试第一个参数值的长度执行了一个 while 循环。当第一个参数的长度为零时,循环结束。测试完第一个参数后, shift 命令会将所有参数的位置移动一个位置。

 使用 shift 命令的时候要小心。如果某个参数被移出,它的值就被丢弃了,无法再恢复。

另外,你也可以一次性移动多个位置,只需要给 shift 命令提供一个参数,指明要移动的位置数就行了。

$ cat test22.sh 
#!/bin/bash
echo "The original parameters: $*"
shift 2
echo "Here's the new first parameter: $1"
$ ./test22.sh 1 2 3 4 
The original parameters: 1 2 3 4
Here's the new first parameter: 3

通过使用 shift 命令的参数,就可以轻松地跳过不需要的参数。

# Shell  

如果这篇文章对您有帮助,可点击下方链接分享给你的朋友们😋,如果遇到问题欢迎评论、留言~~~😇

评论

公众号:zze_coding

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×