好吧。这个脚本你运行一下就知道了
#!/bin/bash
until [ $ # -eq 0 ]
do
echo "$@"
shift
done
看见作用了吧。每次运行shift(不带参数的),销毁一个参数,后面的参数前移
输出如下
YY-QS:~# ./test.sh 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
2 3 4 5 6 7 8 9 10
3 4 5 6 7 8 9 10
4 5 6 7 8 9 10
5 6 7 8 9 10
6 7 8 9 10
7 8 9 10
8 9 10
9 10
10
Shift命令一次移动参数的个数由其所带的参数指定。例如当shell程序处理完前九个命令行参数后,可以使用shift 9命令把$10移到$1
重要用途,Bash定义了9个位置变量,从$1到$9,这并不意味着用户在命令行只能使用9个参数,借助shift命令可以访问多于9个的参数