On 1/11/13 4:05 PM, Dan Douglas wrote: > > I don't understand what you mean. The issue I'm speaking of is that printf %q > produces a quoted empty string both when given no args and when given one > empty arg. A quoted "$@" with no positional parameters present expands to > zero > words (and correspondingly for "${arr[@]}"). Why do you think "x${@}x" is > special? (Note that expansion didn't even work correctly a few patchsets ago.) > > Also as pointed out, every other shell with a printf %q feature disagrees > with > Bash. Are you saying that something in the manual says that it should do > otherwise? I'm aware you could write a wrapper, I just don't see any utility > in the default behavior.
This is how bash behaves: The format is reused as necessary to consume all of the argu- ments. If the format requires more arguments than are supplied, the extra format specifications behave as if a zero value or null string, as appropriate, had been supplied. This is how Posix specifies printf to work. I know it doesn't have %q, but bash doesn't really differentiate between %q and %s. 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/