hjp*_*r92 15 bash shell scripting
比方说我有:
function x {
echo "x"
}
call_func="x"
Run Code Online (Sandbox Code Playgroud)
现在,我可以简单地使用eval
如下:
eval $call_func
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有其他方式调用函数(如果它存在),其名称存储在变量中:call_func
.
Dak*_*ron 21
您应该可以直接使用调用该函数
$call_func
Run Code Online (Sandbox Code Playgroud)
对于其他一切,请查看答案:https://stackoverflow.com/a/17529221/3236102 这不是您所需要的,但它显示了许多不同的方法来调用命令/功能.
让用户执行任意代码是不好的做法,因为它可能非常危险.更好的是这样做:
if [ $userinput == "command" ];then
command
fi
Run Code Online (Sandbox Code Playgroud)
这样,用户只能执行您希望它们执行的命令,如果输入不正确,甚至可以输出错误消息.