printf (Unix)
This article needs additional citations for verification.(July 2010) |
![]() | |
Developer(s) | Various open-source and commercial developers |
---|---|
Operating system | Unix and Unix-like |
Platform | Cross-platform |
Type | Command |
License | coreutils: GPLv3+[1] |
printf is a shellcommand that formats and outputs text like the same-named C function. It is available in a variety of Unix and Unix-like systems. Some shells implement the command as builtin and some systems provide it as a utilityprogram[2]
The command has similar syntax and semantics as the library function. The command outputs text to standard output[3] as specified by a format string and a list of values. Characters of the format string are copied to the output verbatim except when a format specifier is found which causes a value to be output per the specifier.
The command has some aspects unlike the library function. In addition to the library function 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 value used for an unmatched specifier (too few values) is an empty string for %s
or 0 for a numeric specifier. If there are more values than specifiers, then the command restarts processing the format string from its beginning,
The command 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 implementation bundled in GNU Core Utilities was written by David MacKenzie. It has an extension %q for escaping strings in POSIX-shell format.[3]
Examples
[edit]This prints a list of numbers:
$forNin4810;doprintf" >> %03d << \n"$N;done>>004<< >>008<< >>010<<
This produces output for a directory's content similar to ls
:
$printf"%s\n"*
References
[edit]- ^"printf(1): format/print data - Linux man page". linux.die.net.
- ^"GNU Coreutils". www.gnu.org.
- ^ abcLinux User Manual – User Commands –
- ^The Single UNIX Specification, Version 4 from The Open Group – Shell and Utilities Reference,
- ^FreeBSD General Commands Manual –