# copies function named $1 to name $2
rename_function() {
declare -F $1 > /dev/null || return 1
eval "$(echo "${2}()"; declare -f ${1} | tail -n +2)"
}
original() {
echo "ORIGINAL"
}
rename_function original renamed
original() {
echo "DO A NEW THING"
renamed
}
original
# DO A NEW THING
# ORIGINAL