shell-位置参数超过10个之后的问题

当shell脚本接收到超过10个位置参数时,$10及之后的参数可能会出现问题。文章通过示例脚本展示了这个问题,并解释了原因:$10被解析为$1+0,$11被解析为$1+1。解决方案是在引用这些参数时使用花括号,如${10}和${11},以确保正确获取每个参数的值。建议编写shell脚本时养成使用花括号的习惯,避免此类问题。
摘要由CSDN通过智能技术生成

shell-位置参数超过10个之后的问题

作者: 风吹蛋生丶

1. 前言

  客户需要调用我们服务器的脚本,传递了超过10以上的位置参数, 传入参数后发现前9位的参数没什么问题,但到了10以后的位置参数就开始出现其他值。

一般不会传入这么多位置参数,该问题不常见

2. 示例脚本:

#!/bin/bash
echo $*
echo $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14

$* 表示执行脚本传入参数的列表(不包括$0)

执行结果

[root@hdss7-21 ~]# sh 1.sh a b c d e f g h i j k l m n 
a b c d e f g h i j k l m n
a b c d e f g h i a0 a1 a2 a3

3. 解决办法

问题出现的原因主要是当前shell脚本把
$10 当成了 $1 + 0
$11 当成了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

seaskyccl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值