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语言函数