按指定的格式显示数据
printf format [arguments]
printf [--help] [--version]
利用printf命令,可以按指定的格式显示指定的参数数据。其中,format是用于控制显示格式的格式字符串,arguments是一个或多个需要显示的数据参数,如字符串以及各种数值等。printf命令能够解释转义字符,能够解释C语言printf()函数支持的几乎所有的百分号“%”格式字符串,能够按照指定的格式显示字符串或数值参数。
当给定的参数数量多于格式字符串时,格式字符串可以重用。例如,“printf "%s\n" abc xyz”命令能够分两行显示abc与xyz。当给定的参数数量不足时,根据格式字符串的类型,可以显示为空串或数值0。例如,“printf %s%d”命令会显示一个0。
附加的转义字符能够中止printf命令的进一步输出。例如,“printf "A%sC\c%sE" B D”命令仅输出到ABC即停止运行。
为了区别于Shell内置的printf命令,可以使用绝对路径名(/usr/bin/printf)运行printf命令,或使用 “env printf …”命令运行printf命令。
此外,printf命令不输出换行字符,必要的话需要用户自己控制。
printf命令能够解释下列转义字符:
\" 双引号。
\\ 反斜线。
\a 警示音。
\b 退格符。
\c 禁止进一步处理,终止命令的继续运行。
\e ESC字符。
\f 换页符。
\n 换行符。
\r 回车字符。
\t 制表符。
\v 纵向制表符。
\NNN 采用1~3位八进制数表示的字符。
\xHH 采用1~2位十六进制数表示的字符。
\uHHHH 采用4位十六进制数表示的Unicode(ISO/IEC 10646)字符。
\UHHHHHHHH 采用8位十六进制数表示的Unicode(ISO/IEC 10646)字符。
printf命令能够解释下列格式字符串:
%% 单个百分号字符。
%b 这是一个特殊的格式字符串,除了八进制的转义序列“\0ooo”(其中ooo是0~3位八进制数值)之外,还能够解释处理给定参数中的转义字符。
%diouxXfeEgGcs 是“%d”或“%s”等格式字符串的缩写,分别表示按十进制数值或字符串格式输出给定的参数数据等。
1. 使用绝对路径名或env命令运行printf命令,否则结果可能不同。
$ printf "A%sC\c%sE\n" B D ABC\cDE $ env printf "A%sC\c%sE" B D ABC$
2. 使用“%b”格式字符串显示含有转义字符的字符串。
$ env printf %b "1st line\non 2nd line\t go on\n" 1st line on 2nd line go on $
3. 在格式字符串中增加转义字符时,格式字符串前后必须加双引号,否则printf命令不会解释格式字符串中的转义字符。
$ env printf "%s\n%s\t%s\n" "1st line" "on 2nd line" "go on" 1st line on 2nd line go on $ env printf %s\n%s\t%s\n "1st line" "on 2nd line" "go on" 1st linenon 2nd linetgo onn$
索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z