linux命令下向左移动,shift命令 – 移动位置参数

shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本)。

对于某个命令行参数,其参数个数可以不固定,但是可以通过$*或$@进行循环操作。若用户要求Shell在不知道变量个数的情况下,还能逐个处理参数,也就是在$1之后是$2,$2之后是$3。在未运行shift命令之前$1是可用的,当使用shift命令之后,原来的$2会变成$1,并且原有的$1变得不可用,通过$#命令获得的参数个数也会少1。

语法格式:shift [参数]

常用参数:

n整数

参考实例

依次读取输入的参数并打印参数个数:

run.sh 内容如下:

#!/bin/bash

while [ $# != 0 ];do

echo "第一个参数为:$1,参数个数为:$#"

shift

done

输入如下命令运行:run.sh a b c d e f

结果显示如下:第一个参数为:a,参数个数为:6

第一个参数为:b,参数个数为:5

第一个参数为:c,参数个数为:4

第一个参数为:d,参数个数为:3

第一个参数为:e,参数个数为:2

第一个参数为:f,参数个数为:1

把参数进行左移3个:

#!/bin/bash

echo -e "./t.sh arg1 arg2 arg3 arg4 arg5 arg6"

str1="${1},${2},${3}"

echo "str1=$str1"

shift 3

str2=$@

echo "str2=$str2"

sh t.sh 1 2 3 4 5 6 7

str1=1,2,3

将参数从左到右逐个移动:

[root@linuxcool ~]# cat shift.sh

#!/bin/bash

while [ $# -ne 0 ]

do

echo "第一个参数为: $1 参数个数为: $#"

shift

done

[root@linuxcool ~]# sh shift.sh Lily Lucy Jake Mike

第一个参数为: Lily 参数个数为: 4

第一个参数为: Lucy 参数个数为: 3

第一个参数为: Jake 参数个数为: 2

第一个参数为: Mike 参数个数为: 1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值