百度知道的一个问题,需求是:如何取得传入shell脚本的第i个值?要求i循环到几就取第几个参数。
开始想用shell下的$$i获取第几个参数,试了一下发现不行。
有点类似php下的$$var方式获取值。
$a = 'b';
$b = 2;
$c = $$a;
echo $c;
结果为 2
后来想出用数组方式,通过for循环,然后索引减1的方式获取。shell数组索引也是从0开始。
[root@machine1 ~]# cat a.sh
#!/bin/bash
total=$#
array=($*)
for ((i=1;i<=$total;i++));
do
echo "传递参数位:"$i
echo "对应值:"${array[$i-1]}
done
[root@machine1 ~]# sh a.sh a b c d e
传递参数位:1
对应值:a
传递参数位:2
对应值:b
传递参数位:3
对应值:c
传递参数位:4
对应值:d
传递参数位:5
对应值:e
这样就实现了需求。
专注于 服务器运维与web架构
E-mail:venus#rootop.org