我是unix的新手。我想知道是否有任何方法可以将函数分配给 unix 变量,例如:
temp=funcname(){echo 'I am in function'};
$temp; // prints I am in function.
请告诉我。
函数在 UNIX shell 中不是一流的。但是,您可以将函数的名称存储在 shell 变量中并由此调用它。
funcname_foo() {
echo "I am a function"
}
temp=funcname_foo
"$temp"
也就是说——如果你想有条件地指向一个不同的函数,你可以很容易地有条件地定义它:
if [ "$foo" = bar ] ; then
funcname() { echo "Function A"; }
else
funcname() { echo "Function B"; }
fi
funcname # actually call the function
可以通过使用eval
;使用来自变量的文本来定义函数。但是,这很容易出错并且与最佳实践相反,通常不应该这样做。
If you described your actual use case, a better example of the right way to achieve your desired result should be possible.
不。在传统的 *nix shell 中,函数不是一流的。
在 bash shell 中使用函数,例如:
function manhtm { man -R=ASCII $1 | rman -f HTML > ~/tmp/$1-man.html && firefox ~/tmp/$1-man.html;}
function rff { sudo rfcomm connect $1;}