I am trying to write a generic function (such as holder ) - which will take the first parameter The name calls another function name (such as
f1, f2, f3, f4 ... ) and based on certain condition.
#! / Bin / ksh function f1 {echo "F1" return 7} function F2 {echo "F2" return 8} function holder {1 `fptr = $ $ {like fptr}} = rate $? Retractor $ ret. Holder "f1" holder "f2"
Now the sample works however, sometimes the evaluation line $ {fptr} Strange failures occur with the details of the stack. I suspect that the way I am calling a function can be some problems. A sample is duplicate code above the code, the actual code contains complex f1, f2 logic.
- Is it possible to handle such indirect invitations?
- Is "calling function" correct in the holder class? Or should it be handled in a different way?
After the
It is hard to figure out what causes sporadic failure in your case However, There are some things you want to change:
- You probably want to use
eval instead of backlit.
You can execute the modified code for the name of the function by using $ 0 :
< Code> function F1 {echo $ 0 return 7} function F2 {echo $ 0 return 8} function holder {eval "$ 1" resonance $? } Holder "F1" holder "F2" returns:
f1 7 f2 8
No comments:
Post a Comment