如何取得传入shell脚本的第i个值?要求i循环到几就取第几个参数
20个回答
展开全部
按照题主的意思,可以使用shift命令。
什么是shift?举例:假如你有三个参数 $1,$2,$3。在脚本中使用一次shift,将使$2的值成为$1的新值,$3的值成为$2的新值;使用shift 2,将使$3的值成为$1的新值。所以(伪代码):
i=1
para=$1 //获得第1个参数值
...
i=i+1
shift
para=$1 //获得第$i个参数值
...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
shell脚本传参,可通过$0(脚本名),$1(第1参),$2(第2参)...$#(参数个数)方式获取
num=$#
for i in `seq $num` # 循环1到$num数字
do
echo $i # 打印参数
done
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
j=1
while [ $j -lt $i ]
do
shift
done
echo $1
while执行shift i-1次,最后$1就是脚本的第i个值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以把参数全给一个变量
然后awk去取对应的值
[root@localhost ~]# cat 1
#!/bin/bash
a=$*
echo $a|awk '{print $2}'
[root@localhost ~]# sh 1 a 11 bc 33
11
然后awk去取对应的值
[root@localhost ~]# cat 1
#!/bin/bash
a=$*
echo $a|awk '{print $2}'
[root@localhost ~]# sh 1 a 11 bc 33
11
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#/bin/bash
for i in $@
do
echo $i
done
[hxb@Arch test]$ ./a.sh a bb ccc
a
bb
ccc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询