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] |
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.
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.
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]
$ for NUMBER in 4 6 8 9 10
>do printf " >> %03d %d<< \n" $NUMBER $RANDOM
>done
>> 004 26305<< >> 006 6687<< >> 008 20170<< >> 009 28322<< >> 010 4400<<
This will print a directory listing, emulating 'ls':
$ printf "%s\n" *
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] |
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.
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.
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]
$ for NUMBER in 4 6 8 9 10
>do printf " >> %03d %d<< \n" $NUMBER $RANDOM
>done
>> 004 26305<< >> 006 6687<< >> 008 20170<< >> 009 28322<< >> 010 4400<<
This will print a directory listing, emulating 'ls':
$ printf "%s\n" *