Linuxprintf命令详解与使用实例
来源:https://www.runoob.com/linux/linux-comm-printf.html
2025-06-28 09:57:04
0浏览
收藏
本篇文章向大家介绍《Linux printf 命令用法与实例解析》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

Linux printf 命令
一、printf 命令概述
printf 是 Linux/Unix 系统中一个强大的格式化输出命令,它源自 C 语言中的 printf() 函数。与 echo 命令相比,printf 提供了更精确的输出控制和格式化能力。
主要特点
- 精确格式化:可以控制输出的对齐方式、宽度、精度等
- 不自动换行:默认不会在输出末尾添加换行符(与 echo 不同)
- 多语言支持:支持 Unicode 字符输出
- 变量插入:可以在字符串中插入变量值
二、基本语法
printf format-string [arguments...]
参数说明
- 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 |
修饰符选项
1. 标志(flags)
| 标志 | 描述 | 示例 |
|---|---|---|
| - | 左对齐 | printf "%-10s" "hi" |
| + | 显示正负号 | printf "%+d" 123 |
| 0 | 用零填充 | printf "%05d" 12 |
| 空格 | 正数前留空格 | printf "% d" 123 |
| # | 特殊格式(如0x前缀) | printf "%#x" 255 |
2. 宽度(width)
指定最小字段宽度,不足时填充
实例
printf "%10s\n" "hello" # 右对齐,宽度10
printf "%-10s\n" "hello" # 左对齐,宽度10
printf "%-10s\n" "hello" # 左对齐,宽度10
3. 精度(.precision)
对于浮点数,指定小数点后位数;对于字符串,指定最大字符数
实例
printf "%.2f\n" 3.14159 # 输出 3.14
printf "%.5s\n" "abcdefg" # 输出 abcde
printf "%.5s\n" "abcdefg" # 输出 abcde
四、实用示例
示例1:基本格式化输出
实例
printf "Name: %s, Age: %d, Height: %.2f\n" "Alice" 25 1.68
输出:
Name: Alice, Age: 25, Height: 1.68
示例2:表格对齐输出
实例
printf "%-10s %-10s %-10s\n" "Name" "Age" "Score"
printf "%-10s %-10d %-10.2f\n" "Alice" 25 89.5
printf "%-10s %-10d %-10.2f\n" "Bob" 23 92.3
printf "%-10s %-10d %-10.2f\n" "Alice" 25 89.5
printf "%-10s %-10d %-10.2f\n" "Bob" 23 92.3
输出:
Name Age Score Alice 25 89.50 Bob 23 92.30
示例3:特殊字符处理
实例
printf "Temperature: %d°C\n" 25
printf "Path: %s\n" "/home/user"
printf "Alert: \a\n" # 响铃字符
printf "Path: %s\n" "/home/user"
printf "Alert: \a\n" # 响铃字符
示例4:变量插入
实例
name="John"
age=30
printf "User: %s, %d years old\n" "$name" "$age"
age=30
printf "User: %s, %d years old\n" "$name" "$age"
五、高级用法
1. 格式化日期输出
实例
printf "Today is %(%Y-%m-%d)T\n" -1
2. 颜色输出
实例
printf "\e[31mRed Text\e[0m\n"
printf "\e[32mGreen Text\e[0m\n"
printf "\e[32mGreen Text\e[0m\n"
3. 动态指定宽度
实例
width=20
printf "%*s\n" $width "Right aligned"
printf "%*s\n" $width "Right aligned"
六、常见问题与注意事项
换行问题:printf 默认不添加换行符,需要手动添加 \n
实例
printf "No newline"
printf "Add newline\n"
printf "Add newline\n"
参数数量不匹配:当参数少于格式说明符时,会输出未定义值
实例
printf "%s %s\n" "only_one" # 第二个%s会输出空
引号处理:建议将格式字符串用双引号括起来,变量也用双引号
实例
printf "%s\n" "$variable"
特殊字符转义:需要在格式字符串中使用反斜杠转义特殊字符
七、printf vs echo
| 特性 | printf | echo |
|---|---|---|
| 换行 | 需显式添加\n | 自动添加 |
| 格式化 | 支持复杂格式化 | 简单输出 |
| 一致性 | 各系统行为一致 | 不同系统可能有差异 |
| 变量扩展 | 需要显式指定 | 自动扩展 |
| 特殊字符 | 需要转义 | 部分版本支持-e选项 |
今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~
版本声明
本文转载于:https://www.runoob.com/linux/linux-comm-printf.html 如有侵犯,请联系study_golang@163.com删除
Golang拷贝方式:浅拷贝与深拷贝详解
- 上一篇
- Golang拷贝方式:浅拷贝与深拷贝详解
- 下一篇
- HTML边框设置方法,CSS五种写法详解
查看更多
最新文章
-
- 文章 · linux | 5小时前 | Linux · Linux tmpfiles.d systemd-tmpfiles 临时目录清理
- Linux tmpfiles.d 临时目录清理规则的部署
- 223浏览 收藏
-
- 文章 · linux | 5小时前 |
- Linux vmstat 指标与 I/O 等待的判断
- 225浏览 收藏
-
- 文章 · linux | 5小时前 |
- Linux perf record 采样权限与调用栈配置
- 301浏览 收藏
-
- 文章 · linux | 5小时前 |
- Linux systemd.socket ListenDatagram 怎样监听 UDP 套接字
- 216浏览 收藏
-
- 文章 · linux | 5小时前 | linux运维 · Linux Rsync 断点续传 partial-dir append-verify
- Linux rsync 部分传输后的断点续传参数
- 108浏览 收藏
-
- 文章 · linux | 5小时前 |
- Linux tar 排除规则与目录层级的打包
- 434浏览 收藏
-
- 文章 · linux | 5小时前 | Linux ·
- Linux nftables 集合规则的批量维护
- 112浏览 收藏
-
- 文章 · linux | 5小时前 |
- Linux find 按时间与大小组合筛选文件
- 404浏览 收藏
-
- 文章 · linux | 5小时前 |
- Linux ip 命令查看策略路由命中顺序
- 118浏览 收藏
-
- 文章 · linux | 5小时前 |
- Linux systemd RestrictAddressFamilies 怎样限制服务使用的网络协议族
- 117浏览 收藏
-
- 文章 · linux | 5小时前 |
- Linux systemd-escape 怎样把路径转换成实例化 unit 名称
- 382浏览 收藏
-
- 文章 · linux | 5小时前 | 定时器 · Linux · 运维 · 服务管理 · Linux 定时任务 OnCalendar 单调时间 systemd.timer OnBootSec
- Linux systemd.timer 日历与单调时间的选择
- 430浏览 收藏
查看更多
课程推荐
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
查看更多
AI推荐
-
- PubMedQA
- 深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
- 758次使用
-
- H2O EvalGPT
- H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
- 756次使用
-
- LMArena
- LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
- 839次使用
-
- HELM
- 深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
- 805次使用
-
- MMBench
- MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
- 635次使用
查看更多
相关文章
-
- Linux vmstat 如何分辨内存抖动与磁盘等待:si、so、wa 与复测顺序
- 2026-08-30 501浏览
-
- Linux搭建vsftpdFTP服务器教程
- 2026-04-30 501浏览
-
- Shell脚本安装教程:.sh一键安装指南
- 2026-03-16 501浏览
-
- Linux清空文件内容的几种方法
- 2025-12-01 501浏览
-
- Linux命令行下载文件技巧
- 2025-11-23 501浏览

