shell -- shift用法

本文介绍了Unix下shift命令的使用方法及技巧。通过示例详细解释了如何利用shift命令实现命令行参数的左移操作,从而方便地遍历所有参数。此外还介绍了如何使用shift命令处理超过9个命令行参数的情况。

shift是Unix中非常有用的命令。可以使命令参数左移,从而使脚本程序中命令参数位置不变的情况下依次遍历所有参数。
如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。

示例:shift_test.sh

#!/bin/sh

if [ $# -eq 0 ]
then
    echo "Usage: $0 arg1 arg2..."
    exit 1
fi

until [ $# -eq 0 ]
do
    echo "$*"
    echo "first arg $1; Total $#"
    shift
done

执行结果: $
> ./shift_test.sh 1 2 3 4 5 1 2 3 4 5 first arg 1; Total 5 2 3 4 5 first arg 2; Total 4 3 4 5 first arg 3; Total 3 4 5 first arg 4; Total 2 5 first arg 5; Total 1

Shift 命令还有另外一个重要用途, Bsh 定义了9个位置变量,从 $1 到 $9,这并不意味着用户在命令行只能使用9个参数,借助 shift 命令可以访问多于9个的参数。
Shift 命令一次移动参数的个数由其所带的参数指定。例如当 shell 程序处理完前九个命令行参数后,可以使用 shift 9 命令把 $10 移到 $1。

转载于:https://www.cnblogs.com/uriel/p/4241166.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值