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