首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

【Linux】一步一步学Linux——printf命令(204)

  • 23-11-18 13:21
  • 3211
  • 8963
blog.csdn.net

00. 目录

文章目录

    • 00. 目录
    • 01. 命令概述
    • 02. 命令格式
    • 03. 常用选项
    • 04. 参考示例
    • 05. 附录

01. 命令概述

printf命令格式化并输出结果到标准输出。

printf 命令模仿 C 程序库(library)里的 printf() 程序。

printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。默认printf不会像 echo 自动添加换行符,我们可以手动添加 \n。

02. 命令格式

printf FORMAT [ARGUMENT]...
printf OPTION
  • 1
  • 2

03. 常用选项

--help 
	显示 帮助信息, 然后 结束
--version
	显示 版本信息, 然后 结束
  • 1
  • 2
  • 3
  • 4

格式替代符

  • %b 相对应的参数被视为含有要被处理的转义序列之字符串。
  • %c ASCII字符。显示相对应参数的第一个字符
  • %d, %i 十进制整数
  • %e, %E, %f 浮点格式
  • %g %e或%f转换,看哪一个较短,则删除结尾的零
  • %G %E或%f转换,看哪一个较短,则删除结尾的零
  • %o 不带正负号的八进制值
  • %s 字符串
  • %u 不带正负号的十进制值
  • %x 不带正负号的十六进制值,使用a至f表示10至15
  • %X 不带正负号的十六进制值,使用A至F表示10至15
  • %% 字面意义的%

转义序列

  • \a 警告字符,通常为ASCII的BEL字符
  • \b 后退
  • \c 抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略
  • \f 换页(formfeed)
  • \n 换行
  • \r 回车(Carriage return)
  • \t 水平制表符
  • \v 垂直制表符
  • \ 一个字面上的反斜杠字符
  • \ddd 表示1到3位数八进制值的字符,仅在格式字符串中有效
  • \0ddd 表示1到3位的八进制值字符

04. 参考示例

4.1 输出字符串

[deng@localhost ~]$ printf "hello itcast\n"
hello itcast
[deng@localhost ~]$ 
  • 1
  • 2
  • 3

4.2 输出字符串不换行

[deng@localhost ~]$ printf "hello world"
hello world[deng@localhost ~]$ 
  • 1
  • 2

4.3 格式控制输出

[deng@localhost ~]$ cat test.sh 
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234  
printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543  
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876 
[deng@localhost ~]$ ./test.sh 
姓名     性别   体重kg
郭靖     男      66.12
杨过     男      48.65
郭芙     女      47.99
[deng@localhost ~]$ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

%s %c %d %f都是格式替代符

%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。

%-4.2f 指格式化为小数,其中.2指保留2位小数。

4.4 格式控制输出

[deng@localhost ~]$ printf "%d %s\n" 1 "hello world"
1 hello world
[deng@localhost ~]$ 
  • 1
  • 2
  • 3

4.5 格式控制字符串为单引号

[deng@localhost ~]$ printf '%d %s\n' 1 "hello world"  
1 hello world
[deng@localhost ~]$ 
  • 1
  • 2
  • 3

4.6 格式控制输出字符串没有引号

[deng@localhost ~]$ printf "%s\n" helloworld
helloworld
[deng@localhost ~]$ printf %s helloworld
helloworld[deng@localhost ~]$ 
  • 1
  • 2
  • 3
  • 4

4.7 格式控制输出数字

[deng@localhost ~]$ printf "%d %d %d %d\n" 11 22 33 44 
11 22 33 44
[deng@localhost ~]$ 
  • 1
  • 2
  • 3

4.8 显示字符

[deng@localhost ~]$ printf "%c %c\n" 1 89
1 8
[deng@localhost ~]$ 
  • 1
  • 2
  • 3

4.9 输出百分比

[deng@localhost ~]$ printf "%d%%\n" 80
80%
[deng@localhost ~]$ 
  • 1
  • 2
  • 3

05. 附录

参考:【Linux】一步一步学Linux系列教程汇总

注:本文转载自blog.csdn.net的沧海一笑-dj的文章"https://blog.csdn.net/dengjin20104042056/article/details/100187022"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top