我正在尝试编写一个通用函数(例如holder
)-它将第一个参数名称作为另一个函数名称(例如f1,f2,f3,f4...
)并根据某些条件调用它们。喜欢
#!/bin/ksh
function f1
{
echo "f1"
return 7
}
function f2
{
echo "f2"
return 8
}
function holder
{
fptr=$1
`${fptr}`
ret=$?
echo $ret
}
holder "f1"
holder "f2"
现在上面的示例作品。但是,有时评估行${fptr}
,堆栈细节会发生奇怪的故障。我怀疑我调用函数的方式可能有一些问题。上面的代码是一个示例模拟代码,实际代码包含复杂的f1,f2
逻辑。
- 是否可以处理这种间接调用?
- 持有人类中的“函数调用”是否正确?还是应该单独处理?