Re: more splitting
Ray Andrews <[email protected]> Wed, 15 Apr 2026 17:21:52 -0700
| Newsgroups | gmane.comp.shells.zsh.devel,gmane.comp.shells.zsh.user |
|---|---|
| Message-ID | <[email protected]> |
On 2026-04-15 15:21, dana wrote: > ... again there is no standard for structured pipe > data in the unix world, it's all just bytes, and each command has to > decide for itself what bytes to put in and how to interpret the bytes > that come out Right, as Mark was saying. I get it. > they are not retained. this is a quirk of the way splitting flags like > (s) and (f) work. by default they want to treat the parameter to be > split as a scalar. so just like in your earlier example with the > var2=$var assignment, the shell has to convert var into a single element > for it. to do that it joins the elements using the first character of > IFS, which is a space by default. it's equivalent to this: Yeah, I think that's clearly necessary. Itcantjustpilethecharsoneontopoftheother, there has to be a word separator, so spaces must be added where needed. >> ... so typeset output very close to original variable creation >> keystrokes. > to be clear, typeset is re-quoting everything from scratch because, > again, the shell doesn't store how you quoted things originally. the > quoting style it uses is basically the same as the (q+) style, which is > designed to be minimal (i.e. easier to read). so it will often happen to > match what the way you wrote it, but not necessarily But my conclusion is that a typeset -p output will always generate an identical array, no? > > dana >