Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 函数接受命令字符串,但不接受别名_Function_Unix_Alias - Fatal编程技术网

Function 函数接受命令字符串,但不接受别名

Function 函数接受命令字符串,但不接受别名,function,unix,alias,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中的“$doit\u cmd”行 该

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

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

$doit_cmd 
ret=$?
return $ret
}
doit函数接受命令字符串(包括命令参数)。 它首先向stdout显示给定的命令及其参数,然后 执行命令。我通过doit函数在脚本中执行命令 跟踪执行的命令。上面doit中的“$doit\u cmd”行 该函数在系统命令和脚本中运行良好,但在以下情况下失败 doit函数有一个别名

这是问题的一个例子

$alias wi='whoami'
$cmd_trace=1

$doit whoami
+哇

$doit wi
+wi doit[6]:wi:未找到


有人能帮我解决这个问题吗?这是限制吗?

使用以下命令执行命令:
eval$doit\u cmd


另外,我认为您还应该将
$*
更改为
“$@”

你好,多谢您的帮助和支持。我已经合并了这些变化,它工作得很好。