Printf_(Unix)

printf (Unix)

printf (Unix)

Standard UNIX utility


In Unix and Unix-like operating systems, printf is a shell builtin (and utility program[2]) that formats and outputs text like the same-named C function.

Quick Facts Developer(s), Operating system ...

Originally named for outputting to a printer, it actually outputs to standard output.[3]

The command accepts a format string, which specifies how to format values, and a list of values.

Characters in the format string are copied to the output verbatim except when a format specifier is found which causes a value to be output.

In addition to the standard format specifiers, %b causes the command to expand backslash escape sequences (for example \n for newline), and %q outputs an item that can be used as shell input.[3] The format string is reused if there are more items than format specs. Unused format specs provide a zero value or null string.

History

printf is part of the X/Open Portability Guide since issue 4 of 1992. It was inherited into the first version of POSIX.1 and the Single Unix Specification.[4] It first appeared in 4.3BSD-Reno.[5]

The version of printf bundled in GNU coreutils was written by David MacKenzie. It has an extension %q for escaping strings in POSIX-shell format.[3]

Examples

<syntaxhighlight lang="console" class="" id="" style="background:none; border:none; color:inherit; padding: 0px 0px;" inline="1">$ for NUMBER in  4 6 8 9 10</syntaxhighlight>
> <syntaxhighlight lang="bash" class="" id="" style="background:none; border:none; color:inherit; padding: 0px 0px;" inline="1">do printf " >> %03d %d<< \n" $NUMBER $RANDOM</syntaxhighlight>
> <syntaxhighlight lang="bash" class="" id="" style="background:none; border:none; color:inherit; padding: 0px 0px;" inline="1">done</syntaxhighlight>
 >> 004 26305<<
 >> 006 6687<<
 >> 008 20170<<
 >> 009 28322<<
 >> 010 4400<<

This will print a directory listing, emulating 'ls':

$ printf "%s\n" *

See also


References

  1. "printf(1): format/print data - Linux man page". linux.die.net.
  2. "GNU Coreutils". www.gnu.org.
  3. printf(1)  Linux User Manual – User Commands
  4. printf  Shell and Utilities Reference, The Single UNIX Specification, Version 4 from The Open Group
  5. printf(1)  FreeBSD General Commands Manual

Share this article:

This article uses material from the Wikipedia article Printf_(Unix), and is written by contributors. Text is available under a CC BY-SA 4.0 International License; additional terms may apply. Images, videos and audio are available under their respective licenses.