shell 关于取得参数的问题


遇到一个问题 比如我只需要取的脚本传入的参数的从第二个开始的到后面的参数 怎么取

$@是取的所有的参数 现在需要排除第1个参数

刚开始想能不能用while循环把所有参数循环取出到新的变量 从第二个开始 这样就可以了

#!/bin/bash

num1=$1
num2=$2
num3=$3
num4=$4
command=""


for ((i=2;i<=$#;i++))
do
    echo ${!i}
done

#echo $num1$num2$num3$num4
#echo $@


for ((i=2;i<=$#;i++))
do
    echo ${!i}
done


这个循环打印的结果就是直接从第二个开始打印出来



这样从第二个开始打印 不是我们想要的结果  

考虑用shift指令 


#!/bin/bash

num1=$1
num2=$2
num3=$3
num4=$4
command=""

#echo $num1$num2$num3$num4
#echo $@
i=`expr $# - 2`
echo $#
while [ $# -ne $i ]
do
    command=$(echo $@)
    shift
done
echo "###################################"
echo $command

这样 定义个全局变量command 循环的最后一次更新的内容就是我们想要的数据




完成 这样就得到我们要的变量 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值