From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26667 invoked from network); 13 Jan 1999 16:14:18 -0000 Received: from math.gatech.edu (list@130.207.146.50) by ns1.primenet.com.au with SMTP; 13 Jan 1999 16:14:18 -0000 Received: (from list@localhost) by math.gatech.edu (8.9.1/8.9.1) id LAA05603; Wed, 13 Jan 1999 11:12:25 -0500 (EST) Resent-Date: Wed, 13 Jan 1999 11:12:25 -0500 (EST) From: "Bart Schaefer" Message-Id: <990113081146.ZM17374@candle.brasslantern.com> Date: Wed, 13 Jan 1999 08:11:46 -0800 In-Reply-To: <19990113102626.A6200@fysh.org> Comments: In reply to Phil Pennock "How sensible is ... ?" (Jan 13, 10:26am) References: <19990113102626.A6200@fysh.org> <19990113110951.A6955@fysh.org> <9901131117.AA60050@ibmth.df.unipi.it> <19990113120153.A7542@fysh.org> <9901131245.AA35423@ibmth.df.unipi.it> In-Reply-To: <19990113110951.A6955@fysh.org> Comments: In reply to Phil Pennock "Re: How sensible is ... ?" (Jan 13, 11:09am) In-Reply-To: <9901131117.AA60050@ibmth.df.unipi.it> Comments: In reply to Peter Stephenson "Re: How sensible is ... ?" (Jan 13, 12:17pm) In-Reply-To: <19990113120153.A7542@fysh.org> Comments: In reply to Phil Pennock "Re: How sensible is ... ?" (Jan 13, 12:01pm) In-Reply-To: <9901131245.AA35423@ibmth.df.unipi.it> Comments: In reply to Peter Stephenson "Re: How sensible is ... ?" (Jan 13, 1:45pm) X-Mailer: Z-Mail (4.0b.820 20aug96) To: Zsh Development Workers Subject: Re: How sensible is ... ? MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Resent-Message-ID: <"Etv1C3.0.UN1.fNCds"@math> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/4900 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu 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