重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
导读 | 在编写 shell 脚本时,我们使用echo打印到标准输出。echo是一个简单的 命令,但其功能有限,想要更好的控制输出格式,可以使用printf 命令。 |
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"
在编写shell 脚本时,我们使用echo打印到标准输出。echo是一个简单的命令,但其功能有限,想要更好的控制输出格式,可以使用printf命令。
本文原创地址: https://www.linuxprobe.com/linux-printf-example.html