I am a newbie to unix. I am wondering if there is any way to assign a function to a unix variable, like:
temp=funcname(){echo 'I am in function'};
$temp; // prints I am in function.
Please let me know.
I am a newbie to unix. I am wondering if there is any way to assign a function to a unix variable, like:
temp=funcname(){echo 'I am in function'};
$temp; // prints I am in function.
Please let me know.
Functions are not first-class in UNIX shells. However, you can store the name of your function in a shell variable and call it thereby.
That said -- if you wanted to point to a different function conditionally, you could just as easily define it conditionally:
It is possible to define a function using text from a variable through use of
eval
; however, this is error-prone and contrary to best practices, and generally should not be done.If you described your actual use case, a better example of the right way to achieve your desired result should be possible.
No. Functions are not first-class in traditional *nix shells.
Use function e.g. in the bash shell: