百度知道的一个问题,需求是:如何取得传入shell脚本的第i个值?要求i循环到几就取第几个参数。
开始想用shell下的$$i获取第几个参数,试了一下发现不行。
有点类似php下的$$var方式获取值。
<?php $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
这样就实现了需求。
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/4111.html