shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理,比如shift 2
表示将左侧两个参数丢弃,原来的$3
现在变成$1
,原来的$5
现在变成$3
等等,不带参数的单个shift相当于shift 1。
例如:编辑 test2.sh 文件
#!/bin/bash
until [ $# -eq 0 ]
do
echo "第一个参数为 $1,参数个数为 $#"
shift
done
执行结果:
[root@xl /]# sh test2.sh 1 2 3 4 5
第一个参数为 1,参数个数为 5
第一个参数为 2,参数个数为 4
第一个参数为 3,参数个数为 3
第一个参数为 4,参数个数为 2
第一个参数为 5,参数个数为 1