Shell script中eval的使用

eval 相当于一个参数替换器,它会把所有 $开头的变量 进行求值替换,然后把替换后的结果当作一条命令来执行

举个例子:

#!/bin/bash

PARA="hello world my friend"

function Process()

{

  temp=$(eval echo \$$1 | cut -d ' ' -f 2-)      #1

  eval $1=\$temp  #2

}

Process PARA

echo $PARA

说明:

#1处eval先将它后面所有变量求值,$1==PARA,然后再执行 echo $PARA | cut -d ' ' -f 2-,得到处理后的值,临时存于temp。

#2处,先进行替换,替换结果为: PARA=$temp,再执行这条命令,结果复制回源参数。

 

eval 的这一用法可以用于模仿带指针的C语言函数

posted @ 2012-04-06 19:40  油炸西瓜  阅读(3146)  评论(0编辑  收藏  举报