printf [ -v name ] format [ arg ... ]
       Print the arguments according to the format specification.
       Formatting rules are the same as used in C. The same escape
       sequences as for echo are recognised in the format. All C
       conversion specifications ending in one of csdiouxXeEfgGn are
       handled. In addition to this, `%b' can be used instead of `%s' to
       cause escape sequences in the argument to be recognised and `%q'
       can be used to quote the argument in such a way that allows it to
       be reused as shell input. With the numeric format specifiers, if
       the corresponding argument starts with a quote character, the
       numeric value of the following character is used as the number to
       print; otherwise the argument is evaluated as an arithmetic
       expression. See the section `Arithmetic Evaluation' in zshmisc(1)
       for a description of arithmetic expressions. With `%n', the
       corresponding argument is taken as an identifier which is created
       as an integer parameter.

       Normally, conversion specifications are applied to each argument
       in order but they can explicitly specify the nth argument is to be
       used by replacing `%' by `%n$' and `*' by `*n$'.  It is
       recommended that you do not mix references of this explicit style
       with the normal style and the handling of such mixed styles may be
       subject to future change.

       If arguments remain unused after formatting, the format string is
       reused until all arguments have been consumed. With the print
       builtin, this can be suppressed by using the -r option. If more
       arguments are required by the format than have been specified, the
       behaviour is as if zero or an empty string had been specified as
       the argument.

       The -v option causes the output to be stored as the value of the
       parameter name, instead of printed. If name is an array and the
       format string is reused when consuming arguments then one array
       element will be used for each use of the format string.
