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

00. 目录

01. 命令概述

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

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

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

02. 命令格式

printf FORMAT [ARGUMENT]...
printf OPTION

03. 常用选项

--help 
	显示 帮助信息, 然后 结束
--version
	显示 版本信息, 然后 结束

格式替代符

  • %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 ~]$ 

4.2 输出字符串不换行

[deng@localhost ~]$ printf "hello world"
hello world[deng@localhost ~]$ 

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 ~]$ 

%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 ~]$ 

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

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

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

[deng@localhost ~]$ printf "%s\n" helloworld
helloworld
[deng@localhost ~]$ printf %s helloworld
helloworld[deng@localhost ~]$ 

4.7 格式控制输出数字

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

4.8 显示字符

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

4.9 输出百分比

[deng@localhost ~]$ printf "%d%%\n" 80
80%
[deng@localhost ~]$ 

05. 附录

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值