linux shell脚本中 shift(shift 1) 命令每执行一次,入参变量个数($#)减一,而且遵循FIFO的原则,即shift之前的
1变量被销毁,shift之后的
2就变成了$1,变量值提前一位。
shift n后,前n位参数都会被销毁。
example1:
test1.sh
/#!/bin/bash
while [ $# != 0 ];do
echo “参数: 第一个是:
1,个数为:
#”
shift
done
运行:test1.sh a b c
结果显示如下:
参数: 第一个是:a, 个数为:3
参数: 第一个是:b, 个数为:2
参数: 第一个是:c, 个数为:1
example2:
test2.sh
/#!/bin/bash
while [$# != 0 ];do
echo “参数: 第一个是:
1,个数为:
#”
shift 2
done
运行:test2.sh a b c d e f
结果显示如下:
参数: 第一个是:a, 个数为:6
参数: 第一个是:c, 个数为:4
参数: 第一个是:e, 个数为:2