Você pode usar esta função para carregar o código de uma função de um arquivo da mesma forma que autoload
o faz, sem a restrição de que o nome do arquivo deve corresponder ao nome da função.
## load_from FILE FUNCTION_NAME
load_from () {
eval "$2 () { $(<$1) }"
}
Veja como o código do wrapper se parece. $^fpath/somefunction(N)
expande para a lista de definições de somefunction
no caminho de carregamento ( $^fpath/somefunction
expande para a lista de /dir/somefunction
para cada /dir
em $fpath
e o qualificador de glob (N)
restringe a expansão para arquivos existentes). Note que isto só funciona se você tiver um único nível de wrapper e o wrapper for no fpath.
#autoload somefunction
local some_parameter=overridden_value
local autoload_files
autoload_files=($^fpath/somefunction(N))
load_from $autoload_files[2] somefunction_wrapped
somefunction_wrapped "$@"