Linux命令之格式化输出printf
  TEZNKK3IfmPf 2023年11月13日 92 0

概述

printf 命令是一个比 echo 更丰富的格式化输出命令,仿照了 C 语言的 printf() 函数的功能。

Linux命令之格式化输出printf

参考资料:

  • Linux printf command

语法

该命令的语法如下:

printf FORMAT [ARGUMENT]...
printf OPTION

该命令支持的选项有:

选项 说明
–help 查看帮助信息
–version 查看版本信息

如果要进行换行或者用制表符分隔字符串,需要在 FORMAT 中使用转义字符。支持的转义有:

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

除了上面的转义符之外,还必须要有格式占位符,比如用 "%s" 表示一个字符串。支持的格式占位符有:

格式占位符 说明
%d 将参数打印为十进制整数
%f 将参数打印为浮点数
%s 将参数打印为字符串
%x 将参数打印为十六进制整数
%o 将参数打印为八进制整数

事实上,上面的格式占位符是由百分号 % 和转换字符(如 ds 等)组成的。上面只是常用的形式,而真正的格式应该是以 % 开头,以转换字符结尾。在 % 和转换字符之间可能有,按顺序:

符号 说明
- 表示左对齐,如果没有则表示默认右对齐
number 指定字符宽度的整数,如果不足该指定宽度则以空格进行填充
. 一个句点,将字段宽度与精度分开
number 一个整数,精度,它指定要从字符串中打印的最大字符数,或浮点值的小数点后的位数,或整数的最小位数
hl 分别区分短整数和长整数,并且通常仅用于计算机编程

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

%4.2f 表示格式化为小数,其中 .2 表示保留两位小数。

pintf 命令默认是不换行的,如果需要换行则需要使用转义字符 \necho 命令默认就换行。



使用

格式化输出

示例:

printf "name:%s\tgender:%s\tage:%d\tscore:%.2f\n" 张三 f 18 66.5

Linux命令之格式化输出printf

如果在脚本中使用,可以传递变量。例如:

#!/bin/bash

msg="hello world"
printf "%s\n" "$msg"
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

TEZNKK3IfmPf