From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from euclid.skiles.gatech.edu (list@euclid.skiles.gatech.edu [130.207.146.50]) by melb.werple.net.au (8.7.5/8.7.3) with ESMTP id DAA13621 for ; Wed, 1 May 1996 03:32:01 +1000 (EST) Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id NAA07432; Tue, 30 Apr 1996 13:20:20 -0400 (EDT) Resent-Date: Tue, 30 Apr 1996 13:20:20 -0400 (EDT) From: Zefram Message-Id: <21648.199604301719@stone.dcs.warwick.ac.uk> Subject: Re: IFS problem To: guillaum@clipper.ens.fr (Florent Guillaume) Date: Tue, 30 Apr 1996 18:19:07 +0100 (BST) Cc: zsh-workers@math.gatech.edu In-Reply-To: <199604301551.RAA19638@clipper.ens.fr> from "Florent Guillaume" at Apr 30, 96 05:51:07 pm X-Loop: zefram@dcs.warwick.ac.uk X-Stardate: [-31]7433.60 X-US-Congress: Moronic fuckers MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Resent-Message-ID: <"Vwj5z2.0._p1.ElaXn"@euclid> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/974 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu > var="a%b%c" > OIFS=$IFS > IFS='%'; set - $var; IFS=$OIFS > echo $# > >returns 3 under sh, ksh, bash 1.14.3 >but 1 under zsh 2.6.beta15 > >Is it a known bug ? No, it's a known feature. It's discussed in the FAQ. By default, zsh does not perform field splitting (which IFS is used for). To get standard Bourne/Korn/POSIX shell behaviour, use `setopt sh_word_split`. (That option, by the way, is misnamed -- word splitting is something else entirely.) To get field splitting on a case-by-case basis, use "$=var" instead of "$var". "$==var" can also be used to *dis*able field splitting for one substitution only. For example: var="a%b%c" OIFS=$IFS IFS='%'; set - $=var; IFS=$OIFS echo $# -zefram