shift命令使位置参数都左移一位。
$1 <--- $2, $2 <--- $3, $3 <--- $4, 以此类推。
原来旧的$1值会消失,但是$0 (脚本名称)不会改变,如果你把大量的位置参数传给脚本,那么可以使用shift命令存取超过10的位置参数,虽然这个功能也能由{bracket}花括号做到。
实例使用shift
#!/bin/bash
# 用 'shift'命令逐步存取所有的位置参数
# 给这个脚本一个命名,比如说shft,
#+ 然后以一些参数来调用这个脚本,例如
# ./shft a b c def 23 skidoo
until [ -z "$1" ] # 直到所有的位置参数被存取完...
do
echo -n "$1 "
shift
done
echo # 换行.
exit 0
同样,shift命令也可以在需要传递一些参数的函数上以类似的方式工作。