Base/usr/share/man/man1/printf.md
printf - format and print data
$ printf <format> [arguments...]
printf formats argument(s) according to format and prints the result to standard output.
format is similar to the C printf format string, with the following differences:
b (%b) is not supported.n) are not supported.q (%q) has a different behavior, where it shall print a given string as a quoted string, which is safe to use in shell inputs.| escape | description |
|---|---|
\\\\ | literal backslash |
\\" | literal double quote |
\\a | alert (BEL) |
\\b | backspace |
\\c | Ends the format string |
\\e | escape (\\x1b) |
\\f | form feed |
\\n | newline |
\\r | carriage return |
\\t | tab |
\\v | vertical tab |
The format string is reapplied until all arguments are consumed, and a missing argument is treated as zero for numeric format specifiers, and an empty string for string format specifiers.
# print 64 as a hexadecimal number, with the starting '0x'
$ printf '%#x' 64
# prints "a0\n", ignoring everything after '\c'
$ printf '%s%d\n\caaaa' a
# prints "123400", as 'x' is an invalid number, and the missing argument for the last '%d' is treated as zero.
$ printf '%d%d%d' 1 2 3 4 x