On Thu, Apr 16, 2015 at 10:38:22PM -0700, Linda Walsh wrote: > It's a trite example, but I do something like: > > > sub gvim () { > array orig_args=($@) gv_files=() gv_ops=() > int use_tab=0 look_for_ops=1 > > sub _exec_gvim() { > array args > ((use_tab)) && args=("-p") > (( ${#gv_ops[@]:-0} )) && args+=(${gv_ops[@]}) > (( $# )) && args+=($@) > command gvim "${args[@]}" > unset -f _exec_gvim > } > .... > > > AFAIK, _exec_gvim, can only be called from within "function gvim", no?
That is not correct. In bash, all function definitions are global. imadev:~$ f1() { f2() { echo "I'm f2"; }; }; f1; f2 I'm f2