左移参数,即$3变为$2,$2变为$1。
示例:
[root@hadoop01 test-shell]# cat test-shift.sh #! /bin/bash until [ $# -eq 0 ] do echo "第一个参数为: $1 参数个数为: $#" shift done
运行结果:
[root@hadoop01 test-shell]# sh -x test-shift.sh 1 2 3 4 + '[' 4 -eq 0 ']' + echo '第一个参数为: 1 参数个数为: 4' 第一个参数为: 1 参数个数为: 4 + shift + '[' 3 -eq 0 ']' + echo '第一个参数为: 2 参数个数为: 3' 第一个参数为: 2 参数个数为: 3 + shift + '[' 2 -eq 0 ']' + echo '第一个参数为: 3 参数个数为: 2' 第一个参数为: 3 参数个数为: 2 + shift + '[' 1 -eq 0 ']' + echo '第一个参数为: 4 参数个数为: 1' 第一个参数为: 4 参数个数为: 1 + shift + '[' 0 -eq 0 ']'
当输入参数比较多的时候可以采用shift.另外,也可以利用 shift N ,左移N个位置。N>0