From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23343 invoked from network); 18 Sep 2001 10:56:11 -0000 Received: from sunsite.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 18 Sep 2001 10:56:11 -0000 Received: (qmail 7075 invoked by alias); 18 Sep 2001 10:55:48 -0000 Mailing-List: contact zsh-users-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 4237 Received: (qmail 7061 invoked from network); 18 Sep 2001 10:55:46 -0000 Date: Tue, 18 Sep 2001 12:39:09 +0100 From: Adam Spiers To: zsh-users@sunsite.dk Subject: Re: retrieving invocation arguments Message-ID: <20010918123909.C6902@thelonious.new.ox.ac.uk> Reply-To: Adam Spiers Mail-Followup-To: zsh-users@sunsite.dk References: <20010914214218.A23939@thelonious.new.ox.ac.uk> <1010915173427.ZM1780@candle.brasslantern.com> <20010917112344.A3210@thelonious.new.ox.ac.uk> <1010917161307.ZM5925@candle.brasslantern.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <1010917161307.ZM5925@candle.brasslantern.com>; from schaefer@brasslantern.com on Mon, Sep 17, 2001 at 04:13:07PM +0000 X-Home-Page: http://www.new.ox.ac.uk/~adam/ X-OS: RedHat Linux Bart Schaefer (schaefer@brasslantern.com) wrote: > On Sep 17, 11:23am, Adam Spiers wrote: > } > } Currently I have > } > } restart () { > } exec $SHELL "$SHELL_ARGS" "$@" > } } > } > } and I do > } > } export SHELL_ARGS="$@" > } > } in my ~/.switch_shell (run from bash). > > Ah. Well, "$@" doesn't include the option switches even in bash That's OK, that "$@" refers to the arguments passed to .switch_shell, which are hard-coded in my .bashrc rather than being those bash was invoked with. > Also, "$SHELL_ARGS" is going to be one argument where the original "$@" > may have had several. > > And I should repeat the warning about `export SHELL_ARGS="$@"' -- "$@" > is an array with each element quoted, so what you've really written is > > export SHELL_ARGS="$1" "$2" "$3" ... > > which is probably not what you meant. Using "$@" works in bash because it > treats the arguments to `export' as if they were assignment expressions; > but in zsh that requires `setopt kshtypeset' (4.0.2 and later). Yes, I was aware of that problem, although I guess what I actually meant to write was export SHELL_ARGS="$*" which should be a bit better, but still not ideal. Anyhow, dissatisfaction with this whole approach was the main reason for asking the original question. > Anyway, it's very difficult to restart the shell exactly as it was invoked > unless you stash the arguments very early in .zshenv and have a cooperative > /etc/zshenv. I don't (and won't) have a cooperative /etc/zshenv, which is why it would be nice if zsh itself made the information easily retrievable, if it wouldn't be hard to implement cleanly. > And now that's probably more glorious detail than I should have included. :-)