失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 19. shift shift n 位置变量 命令行参数控制 shift语法 用法示例

19. shift shift n 位置变量 命令行参数控制 shift语法 用法示例

时间:2021-04-10 08:18:32

相关推荐

19. shift shift n 位置变量 命令行参数控制 shift语法 用法示例

文章目录

前言shift 语法示例总结

前言

shift是一条非常有用的命令。对于位置变量或命令行参数,其个数是确定的,可以把所有参数一起赋值给变量$*。位置参数用shift命令左移,将参数变量列表 list 左移指定次数,缺省为左移一次。参量列表 list 一旦被移动,最左端的那个参数就从列表中删除。

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


shift 语法

while 循环遍历位置变量或者命令行参量列表时,常用到 shift。

shift [n]

shift是一条非常有用的命令。对于位置变量或命令行参数,其个数是确定的,可以把所有参数一起赋值给变量$*。位置参数用shift命令左移,将参数变量列表 list 左移指定次数,缺省为左移一次。参量列表 list 一旦被移动,最左端的那个参数就从列表中删除。

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

示例

查看命令行参数

shift 命令每执行一次,变量的个数($#)减一,而变量值提前一位

#!/bin/bash# Usage: args01.sh [args]while (($# > 0)); doecho $*echo $#shiftdone

[root@zaishu sh]# ./args01.sh a b ca b c3b c2c1

until 和 shift 命令计算所有命令行参数的和。

#!/bin/bash# Usage: calc_sum.shif [ $# -eq 0 ]; thenecho "Usage: $0 user1 user2 .."exit 1fisum=0until [ $# -eq 0 ]; dosum=$((sum+$1))shiftdoneecho "sum is : $sum"

[root@zaishu sh]# ./calc_sum.sh 10 20sum is : 30

创建命令行上的所有用户

#!/bin/bash# Usage: batch_create_user.shif [ $# -eq 0 ]; thenecho "Usage: $0 user1 user2 .."exit 1fiwhile [ "$1" ] ; doif id $1 &>/dev/null; thenecho $1 is existelseuseradd $1echo "$1 is created"fishiftdoneecho "All user is created"

[root@zaishu sh]# ./batch_create_user.shUsage: ./batch_create_user.sh user1 user2 ..

[root@zaishu sh]# ./batch_create_user.sh zhazha is createdAll user is created

[root@zaishu sh]# ./batch_create_user.sh zha lizha is existli is createdAll user is created


总结

shift是一条非常有用的命令。对于位置变量或命令行参数,其个数是确定的,可以把所有参数一起赋值给变量$*。位置参数用shift命令左移,将参数变量列表 list 左移指定次数,缺省为左移一次。参量列表 list 一旦被移动,最左端的那个参数就从列表中删除。

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

如果觉得《19. shift shift n 位置变量 命令行参数控制 shift语法 用法示例》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。