On Thu, Nov 12, 2009 at 01:47:52AM +0100, Antonio Macchi wrote:
> $ printf "%s\n" ok -
> ok
> -
>
> why that score in the newline?
Your pattern has one format operator, but there are two arguments,
so the pattern is applied again.
> --------
>
> $ printf "%d %s\n" 1 ok -
> 1 ok
> -bash: printf: -: invalid number
> 0
>
> why getting error here, and not in the previous?
> why "invalid number" ?
> what is that zero?
Again, you have more arguments than operators, so it makes another pass,
and on the second pass tries to format - as a number... Don't know
about the zero, but I guess %d maybe starts with a default of 0...?
> --------
>
> $ printf "%2s\n" qwerty
> qwerty
>
> strings larger than fixed-width are entire written?
It's not fixed width but minimum width.
> I'm using BASH_VERSION 3.2.39, so please forgive me if this issue are
> already fixed
There's nothing to fix. It might help if you provide some markers
in your test patterns so you can see where each argument begins and
ends, e.g.,
$ printf "(%d) {%s}\n" 1 ok -
(1) {ok}
-bash: printf: -: invalid number
(0) {}
Ken
--
Ken Irving, [email protected], 907-474-6152
Water and Environmental Research Center
Institute of Northern Engineering
University of Alaska, Fairbanks