function接受命令字符串但不接受别名

时间:2011-02-14 11:02:55

标签: function unix alias

我创建了这个doit函数来执行系统命令,脚本和别名。

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

$doit_cmd 
ret=$?
return $ret
}

doit函数接受命令字符串(包括命令参数)。 它首先将给定的命令及其参数显示给stdout,然后 执行命令。我通过doit函数在脚本中执行命令 跟踪执行的命令。上面的行中的“$ doit_cmd”行 函数可以很好地用于系统命令和脚本,但是失败了 为doit函数赋予别名。

以下是问题的演示。

$ alias wi ='whoami'
$ cmd_trace = 1

$ doit whoami
+ whoami

$ doit wi
+ wi doit [6]:wi:not found

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

1 个答案:

答案 0 :(得分:0)

使用以下命令执行命令:eval $doit_cmd

另外,我认为您还应将$*更改为"$@"