如何取得传入shell脚本的第i个值?要求i循环到几就取第几个参数

 我来答
t5w0rd
2014-12-31 · TA获得超过350个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:83.6万
展开全部
for ((i=1;i<=$#;i++))
do
echo ${!i}
done
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
helpxiaoshan
2018-06-04
知道答主
回答量:14
采纳率:0%
帮助的人:7.3万
展开全部
$1 代表第一个值,$5代表第五个值,你懂了吧。
echo $i 就是脚本第i个值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友35fe57c
2018-10-09 · TA获得超过465个赞
知道小有建树答主
回答量:815
采纳率:39%
帮助的人:221万
展开全部
想了想,我暂时没有好的方法,#@ 是一个数组 但是我不会像平常数组那样取到它的第i个值,有好的答案也请@ 我一下
#!/bin/bash
#output parameter
_index=0
for i in "$@"
do
arr[_index]=$i
let _index++
done
read -p "Which one do you want to show?:" i
if [ $i -le 0 ] || [ $i -gt $# ]
then
echo "The value you entered is invalid."
exit -1
fi
let i--
echo ${arr[$i]}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniapp30ckv39LZ7vSp
推荐于2018-06-26 · TA获得超过743个赞
知道小有建树答主
回答量:349
采纳率:0%
帮助的人:478万
展开全部
#!/bin/bash
for ((i=1;i<=$#;i++))
do
echo $i
done
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Widiots
2018-08-14 · TA获得超过1381个赞
知道小有建树答主
回答量:289
采纳率:77%
帮助的人:222万
展开全部

可以通过for循环分割处理 $@ 

#!/bin/bash

i=1
for arg in "$@"
do
    echo The $i argument is $arg.
    i=$[i + 1]
done

也可以将引用变量 i 的语句用 eval 计算后输出

#!/bin/bash

for ((i=1; i<=$#; i++))
do
    eval "echo The $i argument is \$$i"
done
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式