我创建了这个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
有人可以帮我解决这个问题吗?这是一个限制吗?
答案 0 :(得分:0)
使用以下命令执行命令:eval $doit_cmd
。
另外,我认为您还应将$*
更改为"$@"
。