AIX命令参考大全,卷 4,n - r - printf 命令

[ 页的底部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]

AIX命令参考大全,卷 4,n - r

printf 命令

用途

写格式化输出。

语法

printf FormatArgument ... ]

描述

printf 命令转换、格式化并写 Argument 参数到标准输出。Argument 参数是由 Format 参数控制格式化的。格式化输出行不能超出 LINE_MAX 字节长度。

下列环境变量影响 printf 命令的执行:

LANG LC_ALL 和相应的环境变量(以 LC_ 开头)没有指定语言环境时,确定语言环境编目使用的语言环境。
LC_ALL 确定用于覆盖由 LANG 或其它任何 LC_ 环境变量设置的任何语言环境编目值的语言环境。
LC_CTYPE 确定把文本字节数据顺序解释为字符的语言环境;例如,单一字节对应多字节字符的参数。
LC_MESSAGES 确定写消息使用的语言。
LC_NUMERIC 确定数字格式编排的语言环境。此环境变量影响使用 e、E、f、gG 转换字符编写的数字的格式。

Format 参数是包含三种对象类型的一个字符串:

Argument 参数是一个或多个字符串的列表,它在 Format 参数的控制下被写到标准输出。

Format 参数在必要的情况下会经常重新使用以满足 Argument 参数。 将好像提供了空字符串 Argument 一样评估任何额外的 c 或者 s 转换规范;其它额外转换规范将好像提供了 0 Argument 一样评估。此处 Format 参数不包含转换规范仅出现 Argument 参数,结果是不确定的。

每个 Format 参数中的转换规范都具有如下顺序的语法:

  1. % (百分号)。
  2. 零或更多的选项,修改转换规范的含义。选项字符和它们的含义是:

    - 转换结果在字段中左对齐。
    + 符号转换结果常以符号(+ 或者 -)开始。
    空格 如果符号转换的第一个字符不是符号,结果的前缀将是空格。如果空格和 + 选项字符都显示,则忽略空格选项字符。
    # 此选项指定值转换到备用格式。对于 cdi, us 转换,选项没有作用。对于 o 转换,它增加精度来强制结果的第一数字是 a、0(零)。对于 xX 转换,非零结果分别具有 0x 或 0X 前缀。对于 eEfgG 转换, 结果通常包含基数字符,即使基数字符后没有数字。对于 gG 转换,结尾零不象通常一样除去。
    0 对于 diouxeEfgG 转换, 前导零(跟在符号或底数的后面)用于填充字段宽度,将不用空格填充。如果显示 0(零)和 -(减号)选项,0(零)选项被忽略。对于 diouxX 转换, 如果指定精度,0(零)选项将被忽略。
    注:
    其它转换,没有定义其行为。
  3. 可选的指定最小值字段宽度的十进制数字字符串。如果转换值字符少于字段宽度,该字段将从左到右按指定的字段宽度填充。如果指定了左边调整选项,字段将在右边填充。如果转换结果宽于字段宽度,将扩展该字段以包含转换后的结果。不会发生截断。然而,小的精度可能导致在右边发生截断。
  4. 可选的精度。精度是一个 .(点)后跟十进制数字字符串。如果没有给出精度,按 0(零)对待。精度指定:
  5. 指示要应用的转换类型的一个字符,例如:

    % 不进行转换。打印一个 %(百分号)。
    d, i 接受整数值并将它转换为有符号的十进制符号表示法。 精度指定显示的最小数字位数。如果值转换后可以用更少的位数来表示,将使用前导零扩展。缺省精度是 1。精度为零的零值转换的结果是空字符串。用零作为前导字符来指定字段宽度,导致用前导零填充字段宽度值。
    o 接受整数值并将它转换为有符号的八进制符号表示法。 精度指定显示的最小数字位数。如果值转换后可以用更少的位数来表示,将使用前导零扩展。缺省精度是 1。精度为零的零值转换的结果是空字符串。用零作为前导字符来指定字段宽度,导致用前导零填充字段宽度值。不用八进制值表示字段宽度。
    u 接受整数值并将它转换为无符号的十进制符号表示法。 精度指定显示的最小数字位数。如果值转换后可以用更少的位数来表示,将使用前导零扩展。缺省精度是 1。精度为零的零值转换的结果是空字符串。用零作为前导字符来指定字段宽度,导致用前导零填充字段宽度值。
    x, X 接受整数值并将它转换为十六进制符号表示法。 字母 abcdef 用于 x 转换,字母 ABCDEF 用于 X 转换。精度指定显示的最小数字位数。如果值转换后可以用更少的位数来表示,将使用前导零扩展。缺省精度是 1。精度为零的零值转换的结果是空字符串。用零作为前导字符来指定字段宽度,导致用前导零填充字段宽度值。
    f 接受浮点或者双精度值并将它转换为十进制符号表示法,格式为 [-] ddd.ddd。基数字符(在这里显示为十进制点)后的数字位数等于规定的精度。 LC_NUMERIC 语言环境编目确定在这个格式中使用的基数字符。如果不指定精度,则输出六个数字。如果精度是 0(零),将不显示基数字符。
    e, E 接受浮点或者双精度值并将它转换为指数表示的形式 [-] d.dde{+|-}dd。 在基数字符前有一个数字(在这里显示为十进制点),基数字符后的数字位数等于规定的精度。 LC_NUMERIC 语言环境编目确定在这个格式中使用的基数字符。如果不指定精度,则输出六个数字。如果精度是 0(零),将不显示基数字符。E 转换字符在指数前生成带 E 而不是带 e 的数字。指数通常至少包含两个数字。然而,如果要打印的指数值大于两个数字,必要时需要打印附加指数数字。
    gG 接受浮点和双精度值并转换为 fe 转换字符的样式(或在 G 转换的情况下是 E),用精度指定有效数字的个数。尾零将从结果中除去。基数字符只有在其后是数字时显示。使用的样式取决于转换的值。样式 g 仅在转换的指数结果小于 -4,或大于或等于精度时使用。
    c 接受值将其作为字符串并打印字符串中的第一个字符。
    s 接受值将其作为字符串并打印字符串中的字符直到字符串结束或者达到精度指示的字符个数。如果没有指定精度,打印全部字符直到出现第一个空字符。
    b 接受值将其作为字符串,可能包含反斜杠转义序列。 打印来自转换字符串的字节直到字符串结束或者达到精度规范指示的字节数。如果没有指定精度,打印全部字节直到出现第一个空字符。

支持下列反斜杠转义序列:

退出状态

该命令返回以下出口值:

0 成功完成。
>0 发生错误。

示例

  1. 输入下列命令:

    printf "%5d%4d\n" 1 21 321 4321 54321

    产生下列输出:

        1  21
      3214321
    54321   0

    三次使用 Format 参数打印所有给定字符串。0(零)由 printf 命令提供以满足最后的 %4d 转换规格。

  2. 输入下列命令

    printf "%c %c\n" 78 79

    产生下列输出:

    7 7

文件

/usr/bin/printf 包含 printf 命令。

相关信息

/usr/bin/echo 命令。

printf 子例程 AIX 5L Version 5.2 Technical Reference: Base Operating System and Extensions

AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Input and Output Handling Programmer's Overview 描述文件、命令和用于低级、流、终端和异步 I/O 接口的子例程。

AIX 5L Version 5.2 National Language Support Guide and Reference 中的 National Language Support Overview

[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]