Linux 的 printf 命令是一个功能强大的格式化输出工具,它提供了比传统 echo 命令更精确的输出控制。该命令源自 C 语言的 printf() 函数,在 Bash shell 和其他 shell 环境中都可以使用。
基本语法:
printf format [arguments...]
主要特点:
-
格式字符串中可以包含:
- 普通字符(直接输出)
- 转义序列(如
\n换行,\t制表符) - 格式说明符(以 % 开头)
-
常用格式说明符:
-
高级功能:
- 可以指定字段宽度(如
%10s表示10字符宽度的字符串) - 可以控制小数位数(如
%.2f表示保留2位小数) - 支持左对齐(如
%-10s)
- 可以指定字段宽度(如
使用示例:
bash
# 基本字符串输出
printf "Hello, %s\n" "World"
# 格式化数字
printf "Decimal: %d, Hex: %x\n" 255 255
# 控制小数位数
printf "Pi: %.4f\n" 3.1415926
# 对齐输出
printf "%-15s %10d\n" "Label1" 123 "Label2" 456
# 处理转义字符
printf "%b" "Line1\nLine2\n"
# 多参数处理
printf "%s %s\n" "First" "Second" "Third" "Fourth"
与 echo 的区别:
printf不会自动添加换行符(除非显式使用\n)- 提供更精确的格式化控制
- 行为在所有环境中更一致
- 可以更好地处理特殊字符
注意事项:
- 参数数量必须与格式字符串中的格式说明符匹配
- 如果参数多于格式说明符,格式字符串会被重用
- 在脚本中使用时,建议将格式字符串用引号括起来
printf 特别适合需要精确控制输出格式的场景,如生成固定格式的报告、表格数据输出等。