printf 是 Linux/Unix 系统中一个强大的格式化输出命令,它源自 C 语言中的 printf() 函数。与 echo 命令相比,printf 提供了更精确的输出控制和格式化能力。
printf format-string [arguments...]
格式说明符以 % 开头,基本形式为:
%[flags][width][.precision]specifier
说明符 | 描述 | 示例 |
---|---|---|
%s | 字符串 | printf "%s" "hello" |
%d | 十进制整数 | printf "%d" 123 |
%f | 浮点数 | printf "%f" 3.14 |
%x | 十六进制整数(小写) | printf "%x" 255 |
%X | 十六进制整数(大写) | printf "%X" 255 |
%o | 八进制整数 | printf "%o" 8 |
%c | 单个字符 | printf "%c" 65 |
标志 | 描述 | 示例 |
---|---|---|
- | 左对齐 | printf "%-10s" "hi" |
+ | 显示正负号 | printf "%+d" 123 |
0 | 用零填充 | printf "%05d" 12 |
空格 | 正数前留空格 | printf "% d" 123 |
# | 特殊格式(如0x前缀) | printf "%#x" 255 |
指定最小字段宽度,不足时填充
对于浮点数,指定小数点后位数;对于字符串,指定最大字符数
输出:
Name: Alice, Age: 25, Height: 1.68
输出:
Name Age Score Alice 25 89.50 Bob 23 92.30
换行问题:printf 默认不添加换行符,需要手动添加 \n
参数数量不匹配:当参数少于格式说明符时,会输出未定义值
引号处理:建议将格式字符串用双引号括起来,变量也用双引号
特殊字符转义:需要在格式字符串中使用反斜杠转义特殊字符
特性 | printf | echo |
---|---|---|
换行 | 需显式添加\n | 自动添加 |
格式化 | 支持复杂格式化 | 简单输出 |
一致性 | 各系统行为一致 | 不同系统可能有差异 |
变量扩展 | 需要显式指定 | 自动扩展 |
特殊字符 | 需要转义 | 部分版本支持-e选项 |
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号