# Linux的shift
命令
# 命令功能
bash shell
的shift
命令能够用来操作命令行参数。
在使用 shift
命令时,默认情况下它会将每个参数变量向左移动一个位置。所以,变量 $3
的值会移到 $2
中,变量 $2
的值会移到 $1
中,而变量 $1
的值则会被删除,值得注意的是变量 $0
的值,也就是程序名,不会改变。
在不知道到底有多少参数时,这是遍历命令行参数的另一个好方法。
使用 shift
命令的时候要小心。如果某个参数被移出,它的值就被丢弃了,无法再恢复。
# 实例
# !/bin/bash
echo cnt=1
while [ -n "$1" ]
do
echo "Parameter #$cnt = $1"
count=$[ $count + 1 ]
shift
done
# ./test 1 2 3 4 5
# Parameter # = 1
# Parameter # = 2
# Parameter # = 3
# Parameter # = 4
# Parameter # = 5
# 补充
shift
命令还支持-n
参数,来控制向左移动的步数。
如上面的例子改写后为:
# !/bin/bash
echo cnt=1
while [ -n "$1" ]
do
echo "Parameter #$cnt = $1"
count=$[ $count + 1 ]
shift 2
done
# ./test.sh 1 2 3 4
# Parameter # = 1
# Parameter # = 3