Shell编程中Shift的用法[转]ITeye - 乐橙lc8

Shell编程中Shift的用法[转]ITeye

2019-01-10 18:19:56 | 作者: 瀚昂 | 标签: 参数,指令,个数 | 浏览: 1147

[转]:http://www.cnblogs.com/image-eye/archive/2011/08/20/2147153.html

方位参数能够用shift指令左移。比方shift 3表明本来的$4现在变成$1,本来的$5现在变成$2等等,本来的$1、$2、$3丢掉,$0不移动。不带参数的shift指令相当于shift 1。
十分有用的 Unix 指令:shift。咱们知道,关于方位变量或指令行参数,其个数有必要是断定的,或许当 Shell 程序不知道其个数时,能够把一切参数一同赋值给变量$*。若用户要求 Shell 在不知道方位变量个数的情况下,还能逐一的把参数逐个处理,也就是在 $1 后为 $2,在 $2 后边为 $3 等。在 shift 指令履行前变量 $1 的值在 shift 指令履行后就不可用了。

示例如下:

#测验 shift 指令(x_shift.sh)
until [ $# -eq 0 ]
do
echo "第一个参数为: $1 参数个数为: $#"
shift
done
履行以上程序x_shift.sh:
$./x_shift.sh 1 2 3 4

成果显现如下:

第一个参数为: 1 参数个数为: 4
第一个参数为: 2 参数个数为: 3
第一个参数为: 3 参数个数为: 2
第一个参数为: 4 参数个数为: 1

从上可知 shift 指令每履行一次,变量的个数($#)减一,而变量值提早一位,下面代码用 until 和 shift 指令核算一切指令行参数的和。

#shift 上档指令的运用(x_shift2.sh)
if [ $# -eq 0 ]
then
echo "Usage:x_shift2.sh 参数"
exit 1
fi
sum=0
until [ $# -eq 0 ]
do
sum=`expr $sum + $1`
shift
done
echo "sum is: $sum"

履行上述程序:

$x_shift2.sh 10 20 15

其显现成果为:

45

Shift 指令还有别的一个重要用处, Bsh 界说了9个方位变量,从 $1 到 $9,这并不意味着用户在指令行只能运用9个参数,凭借 shift 指令能够拜访多于9个的参数。

Shift 指令一次移动参数的个数由其所带的参数指定。例如当 shell 程序处理完前九个指令行参数后,能够运用 shift 9 指令把 $10 移到 $1。
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表乐橙lc8立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章