2011-02-14 51 views
0

我创建了这个doit函数来执行系统命令,脚本和别名。函数接受一个命令字符串,但不是别名

function doit { 
doit_cmd=$* 
if [[ $cmd_trace = "1" ]] then 
    echo "+ $doit_cmd" 
fi 

$doit_cmd 
ret=$? 
return $ret 
} 

doit函数接受一个命令字符串(包括命令参数)。 它首先将给定的命令及其参数显示给标准输出,然后 执行该命令。我通过doit函数 在脚本中执行命令来跟踪执行的命令。上面的doit 函数中的“$ doit_cmd”这一行对于系统命令和脚本来说非常漂亮,但是当 给doit函数一个别名时失败了。

下面是该问题的演示。

$别名无线= 'WHOAMI'
$ cmd_trace = 1

$度特WHOAMI
+ WHOAMI

$度特无线
+无线 度特[6]: wi:找不到

有人可以帮我解决这个问题吗?这是一个限制吗?

回答

0

使用:eval $doit_cmd执行您的命令。

在另外一个笔记,我认为你也应该改变$*"[email protected]"

+0

嗨Dogbane,谢谢你的帮助和支持。我已经纳入了更改,并且工作正常。 – Goldi 2011-02-14 13:26:26

相关问题