On 1/30/13 1:03 AM, Dan Douglas wrote: > Hi everyone, and welcome to another edition of IBOTD (IFS-bug-of-the-day), > featuring everyone's favorite Bourne shell kludge: word-splitting! > > On today's episode - inconsistencies within assignments that depend upon > quoting. Though I can't take credit for discovering this -- it was pointed > out > to me by some guys on IRC after demonstrating some other stuff. > > And a quick test: > > function expassign { > typeset -a a > a=("$@") > typeset var asn > > while IFS= read -r asn; do > IFS=: command eval "$asn" > printf '%-14s... %s\n' "$asn" "$var" > done <<\EOF > var=${a[*]} > var="${a[*]}" > var=$* > var="$*" > var=${a[@]} > var="${a[@]}" > var=$@ > var="$@" > EOF > } > > ${ZSH_VERSION+:} false && emulate ksh > expassign one:::two three:::four
Thanks for the test case. I had to fix the expansions of ${a[@]} and ${a[*]}, and those fixes will be in the next release. Chet -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, ITS, CWRU c...@case.edu http://cnswww.cns.cwru.edu/~chet/