首页 理论教育 实例:通过shift命令轻松循环控制

实例:通过shift命令轻松循环控制

时间:2023-11-18 理论教育 版权反馈
【摘要】:脚本while_shift_1.sh,在while循环开始之前,$#=3,$1=10,$2=20,$3=30。表6-1 位置参数值的变化在脚本while_shift_1.sh的基础上,将shift改为shift2,即,每次左移两个参数,得到脚本while_shift_2.sh:执行该脚本,在其后面跟上6个参数,10到60,结果如下:因为每次左移两个参数,所以,6个参数只有3个显示出来。在while循环里面增加对$#值的显示,得到脚本while_shift_3.sh:执行该脚本,在其后面跟上6个参数,10到60,结果如下:

实例:通过shift命令轻松循环控制

前面讲特殊变量的时候,提到过位置参数。执行命令set102030后,位置参数的值为$1=10,$2=20,$3=30,参数个数$#=3,利用特殊变量$#和内置命令shift可以对位置参数进行循环。命令shift用来左移位置参数,默认左移一个,就是将原来的$1废弃,将$2的值赋给$1,$3的值赋给$2,等等,然后将位置参数的个数减1。shiftN表示左移N个,就是将原来的$1到$N废弃,将${N+1}的值赋给$1,将${N+2}的值赋给$2,等等,然后将位置参数的个数减N。看个例子就清楚了。

978-7-111-48202-4-Chapter06-84.jpg

脚本while_shift_1.sh,在while循环开始之前,$#=3,$1=10,$2=20,$3=30。接着,在循环里面打印出$1的值(10);然后运行shift,位置参数左移,$#=2,$1=20,$2=30,在循环里面打印出$1的值(20);然后运行shift,位置参数左移,$#=1,$1=30,在循环里面打印出$1的值(30);然后运行shift,位置参数左移,$#=0,while循环的条件——“$#大于0”不再满足,循环结束。脚本执行结果如下:

978-7-111-48202-4-Chapter06-85.jpg

$1的值在while循环进行时依次变为10、20和30,见表6-1。

表6-1 位置参数值的变化

978-7-111-48202-4-Chapter06-86.jpg

在脚本while_shift_1.sh的基础上,将shift改为shift2,即,每次左移两个参数,得到脚本while_shift_2.sh:

978-7-111-48202-4-Chapter06-87.jpg(www.xing528.com)

执行该脚本,在其后面跟上6个参数,10到60,结果如下:

978-7-111-48202-4-Chapter06-88.jpg

因为每次左移两个参数,所以,6个参数只有3个显示出来。

在while循环里面增加对$#值的显示,得到脚本while_shift_3.sh:

978-7-111-48202-4-Chapter06-89.jpg

执行该脚本,在其后面跟上6个参数,10到60,结果如下:

978-7-111-48202-4-Chapter06-90.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈