printf 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.

Option Description


Cause escape sequences in the argument to be recognised.


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.


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.