Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: How sensible is ... ?



Gotta stay up all night to keep up with these discussions nowadays ...

On Jan 13, 10:26am, Phil Pennock wrote:
} Subject: How sensible is ... ?
}
} How good an idea would it be to add a shell-callable context builtin, or
} a shell variable, to tell whether something is being run directly [...]
} the scripts could then be written such that zsh users could autoload
} them and others could run them and get the same effective results.

On Jan 13, 12:17pm, Peter Stephenson wrote:
} Subject: Re: How sensible is ... ?
}
} In this particular case, you don't need it, since return will function
} like exit in a script.

That's 99.9% right. :-)  In zsh, return will function like exit, but in
other shells you just get "return: command not found" or the equivalent.
If you want to write a script that can be executed by sh/bash/ksh and
still be autoloaded by zsh, you need to use something like

	return $? 2>/dev/null || exit $?

On Jan 13, 11:09am, Phil Pennock wrote:
} Subject: Re: How sensible is ... ?
}
} Actually, I've just thought of [[ -o interactive ]] -- always the way.
} 
} Is this a sufficient test?  It /seems/ to work as I want ...

It won't work if you call your function from `zsh -c ...` and possibly
not in a few other cases as well (though that test should always be OK
whenever you have a shell prompt).

On Jan 13, 12:17pm, Peter Stephenson wrote:
} I've thought of a hack which is pretty much guaranteed to work (I
} think):
} 
}   foo=global
}   local foo >/dev/null
}   if [[ $foo = global ]]; then 
}     print At top level
}   else
}     print Inside a function
}   fi
} 
} The nasty bit is the `local foo' which prints the status of $foo if it
} already exists.  I keep thinking we ought to do something about that.

I don't have ksh handy, but `foo=bar;local foo` in bash produces the error
message "bash: local: can only be used in a function" unless you are in a
function, in which case it produces nothing.

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com



Messages sorted by: Reverse Date, Date, Thread, Author