首页 » 信息技术 »

bash中shift的作用

2019年4月6日 / 11次阅读
Bash

  • 打开支付宝,搜索“ 529018372 ”,领取专属红包!每日支付每日领。

shift是bash的一个内部命令,起作用是将命令行的位置参数进行向左的位移。

位置参数可以用shift命令左移。比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值给变量$*或$@。若用户要求 Shell 在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在 $1 后为 $2,在 $2 后面为 $3 等。在 shift 命令执行前变量 $1 的值在 shift 命令执行后就不可用了。

[xinlin@localhost ~]$ type shift
shift is a shell builtin
[xinlin@localhost ~]$ 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 $#.

写个简单的shift命令的测试用例:

[xinlin@localhost ~]$ cat test.sh

shift
echo $1
shift
echo $1

[xinlin@localhost ~]$ bash test.sh 1 2 3
2
3

用shift命令移动了两次,每次移动之后,都将位置参数左移一位。

参数位移之后,参数的总数也会发生变量(shift的作用,更确切的说法,应该是去掉参数):

[xinlin@localhost ~]$ cat test.sh

shift
echo $1
echo $#
shift
echo $1
echo $#

[xinlin@localhost ~]$ bash test.sh a b c d
b
3
c
2

echo $#打印出参数的个数,以上代码用shift位移了两次,参数个数也减少了两次。

本文链接:https://www.maixj.net/ict/bash-shift-20901

相关文章

留言区


前一篇:
后一篇:
推一篇:可靠正规,长期稳定,网络兼职项目!!

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top