shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本)。
示例:依次读取输入的参数并打印参数个数
shift_test.sh
#!/bin/bash
while [ $# != 0 ]
do
echo "prama is $1,prama size is $#"
shift
done
输入如下命令运行:
./shift_test.sh a b c
prama is a,prama size is 3
prama is b,prama size is 2
prama is c,prama size is 1
每次运行shift(不带参数的),销毁一个参数,后面的参数前移
Shift命令一次移动参数的个数由其所带的参数指定。
例如当shell程序处理完前九个命令行参数后,可以使用shift 9命令把$10移到$1