shell脚本常用函数和命令(9)shift 详解
格式:shift num 命令用于对参数的移动(左移)多少位,默认是1位,可以移动多位。
如:shift 3 就是一次左移3位参数
#!/bin/bash
while [ $# != 0 ];do
echo "当前的第1个参数是:$1,当前参数总数是:$#"
shift
done
[root@controller1 ~]# sh myshift.sh aa bb cc dd
当前的第1个参数是:aa,当前参数总数是:4
当前的第1个参数是:bb,当前参数总数是:3
当前的第1个参数是:cc,当前参数总数是:2
当前的第1个参数是:dd,当前参数总数是:1
注:每执行一次shift,参数左移一个,参数总个数,也相应减少一个,直到参数结束,退出循环
从上可知 shift(shift 1) 命令每执行一次,变量的个数($#)减一(之前的$1变量被销毁,之后的$2就变成了$1),而变量值提前一位。同理,shift n后,前n位参数都会被销毁
格式:shift num 命令用于对参数的移动(左移)多少位,默认是1位,可以移动多位。
如:shift 3 就是一次左移3位参数
1例:依次读取输入的参数并打印参数个数:
myshift.sh#!/bin/bash
while [ $# != 0 ];do
echo "当前的第1个参数是:$1,当前参数总数是:$#"
shift
done
[root@controller1 ~]# sh myshift.sh aa bb cc dd
当前的第1个参数是:aa,当前参数总数是:4
当前的第1个参数是:bb,当前参数总数是:3
当前的第1个参数是:cc,当前参数总数是:2
当前的第1个参数是:dd,当前参数总数是:1
注:每执行一次shift,参数左移一个,参数总个数,也相应减少一个,直到参数结束,退出循环
从上可知 shift(shift 1) 命令每执行一次,变量的个数($#)减一(之前的$1变量被销毁,之后的$2就变成了$1),而变量值提前一位。同理,shift n后,前n位参数都会被销毁
本文详细介绍了Shell脚本中shift命令的使用方法及其工作原理。通过实例演示了如何利用shift命令来移动脚本参数的位置,实现参数的左移操作,并展示了如何在循环中使用该命令来遍历所有参数。
187

被折叠的 条评论
为什么被折叠?



