printf命令模仿了C语言中的printf()函数。主要作用是输出文本,按照我们指定的格式输出文本。还有一个输出文本的命令echo,在输出文本时,echo会换行。printf命令不会对输出文本进行换行。
# printf 格式 参数
下面是一个例子:
[root@localhost ~]# printf "姓名:%s\n身高:%dcm\n体重:%dkg\n" "小明" "180" "75"
姓名:小明
身高:180cm
体重:75kg
"姓名:%s\n身高:%dcm\n体重:%dkg\n"
是格式,"小明" "180" "75"
是参数。格式包含了%s , %d
都是格式转换符,%d
对应的参数必须是十进制数。%s
对应的参数必须是字符串。还包括了三个\n
换行符,printf命令默认不会添加还行符号,需要手动添加。
\"
– 转义后的双引号\\
– 转义后的反斜杠\b
– 退格符\n
– 换行符\r
– 回车符\t
– 水平制表符\v
– 垂直制表符%%
– 单个%符号类型转换说明符是一个字符,用于指定如何解释相应的参数,该字符是必需添加的,以下是显示所有类型转换及其作用的列表:
%d
– 将参数打印为十进制整数%f
– 将参数打印为浮点数%s
– 将参数打印为字符串%x
– 将参数打印为十六进制整数%o
– 将参数打印为八进制整数该例子使用%d,%x,%o将后面提供的参数转化为十进制、十六进制、八进制。
[root@localhost ~]# printf "Decimal: %d\nHex: %x\nOctal: %o\n" 100 100 100
Decimal: 100
Hex: 64
Octal: 144
下面例子使用%.2f
,其中.2
指参数保留两位小数,f
将参数打印为浮点数。
[root@localhost ~]# printf "%.2f\n" 3.1415926
3.14
下面例子中使用了水平制表符\t
。例子中给的参数超过了格式中给出的转换符的数量,多出的参数仍会按照格式输出。
[root@localhost ~]# printf "%s \t %s \t %s\n" "姓名" "性别" "年龄" "小明" "男" "18" "小红" "女" "19" "小蓝" "男" "18"
姓名 性别 年龄
小明 男 18
小红 女 19
小蓝 男 18
实例中,%-10s , %-8d
其中-
表示靠左对齐,默认情况下是靠右对齐。10和8
表示占用10或者8个字符宽度。\e[1,30;47m ..... \e[0m
表示使用粗体字、黑色字体、白色背景,后面的\e[0,m
表示重置。
[root@localhost ~]# cat p.sh
#!/bin/bash
printf "\e[1;30;47m%-10s %-10s\e[0m\n" "姓名" "年龄"
printf "\e[36;47m%-10s %-8d\e[0m\n" "小明" "18"
printf "\e[31;47m%-10s %-8d\e[0m\n" "小红" "19"
printf "\e[34;47m%-10s %-8d\e[0m\n" "小蓝" "19"
标题名称:详解Linux中printf命令
本文路径:http://www.shufengxianlan.com/qtweb/news15/455265.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联