Date: Tue, 12 May 1998 11:50:00 -0700 (PDT) From: Tor Egge <Tor.Egge@idi.ntnu.no> To: freebsd-bugs@FreeBSD.ORG Subject: Re: bin/6557: /bin/sh && IFS Message-ID: <199805121850.LAA26222@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/6557; it has been noted by GNATS. From: Tor Egge <Tor.Egge@idi.ntnu.no> To: dima@best.net Cc: FreeBSD-gnats-submit@FreeBSD.ORG Subject: Re: bin/6557: /bin/sh && IFS Date: Tue, 12 May 1998 20:46:16 +0200 > Try to run this script: > > #!/bin/sh > XXX=/1:/2:/3: > IFS=: > echo /0:$XXX > > The expected result should be: "/0 /1 /2 /3" > However, with current /bin/sh it's: "/0:/1 /2 /3" According to "X/Open Commands and Utilities Issue 4, Version 2" Section 2.6 "Word Expansion", field splitting is performed on the portions of the fields generated by tilde expansion, parameter expansion, command substitution and arithmetic expansion. i.e. your echo /0:$XXX should give Before Word Expansion: /0:$XXX after tilde expansion, parameter expansiion, command substitition and arithmetic expansion: /0:/1:/2:/3: ^^^^^^^^^ This is the portion of the field being the result of expansion. Any field splitting should only be performed on this portion. after field splitting: /0:/1 /2 /3 after pathname expansion: /0:/1 /2 /3 after quote removal: /0:/1 /2 /3 Correct field splitting results in 4 fields. `/0:/1' `/2' `3' `' The last (empty) field should not be removed, since it is not the complete expansion appropriate for a word (the word being `/0:$XXX' (without quotes)). ksh93 gives almost the same result as our /bin/sh (for this example). Unfortunately, it incorrectly removes the last field. bash incorrectly performs field splitting on portions of the fields that are not the result of expansion or substitution. bash also incorrectly removes the last field. - Tor Egge To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199805121850.LAA26222>