概述
printf
命令是一个比echo
更丰富的格式化输出命令,仿照了 C 语言的printf()
函数的功能。
参考资料:
Linux printf command
语法
该命令的语法如下:
printf FORMAT [ARGUMENT]...printf OPTION
该命令支持的选项有:
如果要进行换行或者用制表符分隔字符串,需要在FORMAT
中使用转义字符。支持的转义有:
除了上面的转义符之外,还必须要有格式占位符,比如用"%s"
表示一个字符串。支持的格式占位符有:
事实上,上面的格式占位符是由百分号%
和转换字符(如d
、s
等)组成的。上面只是常用的形式,而真正的格式应该是以%
开头,以转换字符结尾。在%
和转换字符之间可能有,按顺序:
如%-10s
表示一个宽度为 10 个字符的字符串(-
表示左对齐,没有则表示右对齐),如果不足则自动以空格表示,如果超过则会将内容全部显示出来。
如%4.2f
表示格式化为小数,其中.2
表示保留两位小数。
pintf
命令默认是不换行的,如果需要换行则需要使用转义字符\n
。echo
命令默认就换行。
使用
格式化输出
示例:
printf "name:%s\tgender:%s\tage:%d\tscore:%.2f\n" 张三 f 18 66.5
如果在脚本中使用,可以传递变量。例如:
#!/bin/bashmsg="hello world"printf "%s\n" "$msg"