Rootop 服务器运维与web架构

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

百度知道的一个问题,需求是:如何取得传入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

作者:Venus

服务器运维与性能优化

评论已关闭。