Bash - printf (Builtin command)


printf in Bash is a builtin command that writes the formatted arguments to the standard output under the control of the format.


printf [-v var] format [arguments]


  • format is a character string which contains three types of objects:
    • plain characters, which are simply copied to standard output,
    • character escape sequences, which are converted and copied to the standard output,
    • and format specifications, each of which causes printing of the next successive argument.
  • -v option causes the output to be assigned to the variable var rather than being printed to the standard output.


In addition to the standard printf(1) formats, %b causes printf to expand backslash escape sequences in the corresponding argument (except that \c terminates output, backslashes in \', \“, and \? are not removed, and octal escapes beginning with \0 may contain up to four digits), and %q causes printf to output the corresponding argument in a format that can be reused as shell input.

The format is reused as necessary to consume all of the arguments. 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. The return value is zero on success, non-zero on failure.


var=$'hello Nico\nHello Nico!'
printf "$var\n"
hello Nico
Hello Nico!

Documentation / Reference

Powered by ComboStrap