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 [email protected] http://cnswww.cns.cwru.edu/~chet/