文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>如何使用间接变量

如何使用间接变量

时间:2006-01-17  来源:WillsonZhang

    在这里讨论的shell是bash。这里的间接变量是指类似这样的一些变量:
变量i取值为1,2,3等,而$1, $2, $3等分别也是变量,代表shell程序的参数1,参数2,参数3等。如果要通过变量i的不同取值来引用shell程序的不同参数,那么i就是这里所说的间接变量。
   
    在shell脚本里怎么使用这类变量呢?我所发现的方法是使用bash shell的内嵌函数eval。还是举例说明比较清楚:
    例1: 假如我的shell脚本的参数数量不固定,我希望依次取得每个参数的值,每次取一个。传统的做法是
while [ $# -gt 0 ]
do
    echo "$1"
    shift
done

上面的方法有个缺陷,每次'shift'后,参数数量就会递减,除非你事先保存先前的参数,否则就没法再通过$1, $2等来得到先前的参数。我们可以通过这样的方法来避免。
i=1;
while [ $i -le $# ]
do
    CMD="echo \"\$$i\""
    eval $CMD
    i=`expr \( $i + 1 \)`
done
  
我们用间接参数i就可以来遍历所有的参数,而且所有参数的原位置不会改变。任何时候,你都可以通过$1, $2等来得到第1、第2个参数。

    例2:假如我要用awk来取某个域的值,而取第几个域是由shell变量i决定的。那就可以用这样的方法:
AWK_CMD="awk -F. '{print \$$i}'"
echo $STRING |eval $AWK_CMD

    
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载