Is there any way I can redefine a bash function in terms of its old definition? For example I would like to add the following block of code to the preamble of the function command_not_found_handle (),
# Check if $1 is instead a bash variable and print value if it is
local VAL=$(eval echo \"\$$1\")
if [ -n "$VAL" ] && [ $# -eq 1 ]; then
echo "$1=$VAL"
return $?
fi
It is currently defined in /etc/profile.d/PackageKit.sh and sourced by bash start-up scripts.
That way I can query the value of an environment variable at the command prompt by simply typing the variable name (and provided that no such command by that name exists). e.g.
user@hostname ~:$ LANG
LANG=en_AU.utf8
I know I could just copy and paste the current definition and add my own changes in ~/.bashrc, but I am looking for a more elegant way that involves code reuse.
Better ways of achieving my goal or code improvements/extensions are also appreciated.

eval, you can use indirection:local VAL=$(echo ${!1})– Dennis Williamson Jan 22 '12 at 14:56