Shell——printf 命令
printf 命令模仿 C 程序库(library)里的 printf() 程序。
标准所定义,因此使用printf的脚本比使用echo移植性好。
printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。默认printf不会像 echo 自动添加换行符,我们可以手动添加 \n。
printf 命令的语法:
printf format-string [arguments...]
参数说明:
- format-string: 为格式控制字符串
- arguments: 为参数列表。
实例如下:
$ echo "Hello, Shell"
Hello, Shell
$ printf "Hello, Shell\n"
Hello, Shell
$
接下来,我来用一个脚本来体现printf的强大功能:
#!/bin/bash
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
执行脚本,输出结果如下所示:
姓名 性别 体重kg
郭靖 男 66.12
杨过 男 48.65
郭芙 女 47.99
%s %c %d %f都是格式替代符
%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
%-4.2f 指格式化为小数,其中.2指保留2位小数。
更多实例:
#!/bin/bash# format-string为双引号
printf "%d %s\n" 1 "abc"# 单引号与双引号效果一样
printf '%d %s\n' 1 "abc" # 没有引号也可以输出
printf %s abcdef# 格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string 被重用
printf %s abc defprintf "%s\n" abc defprintf "%s %s %s\n" a b c d e f g h i j# 如果没有 arguments,那么 %s 用NULL代替,%d 用 0 代替
printf "%s and %d \n"
执行脚本,输出结果如下所示:
1 abc
1 abc
abcdefabcdefabc
def
a b c
d e f
g h i
j and 0
printf的转义序列
序列 | 说明 |
---|---|
\a | 警告字符,通常为ASCII的BEL字符 |
\b | 后退 |
\c | 抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略 |
\f | 换页(formfeed) |
\n | 换行 |
\r | 回车(Carriage return) |
\t | 水平制表符 |
\v | 垂直制表符 |
\\ | 一个字面上的反斜杠字符 |
\ddd | 表示1到3位数八进制值的字符。仅在格式字符串中有效 |
\0ddd | 表示1到3位的八进制值字符 |
实例
$ printf "a string, no processing:<%s>\n" "A\nB"
a string, no processing:<A\nB>$ printf "a string, no processing:<%b>\n" "A\nB"
a string, no processing:<A
B>$ printf "konsy \a"
konsy $ #不换行
Shell——printf 命令相关推荐
- linux中的shell有printf吗,Linux Shell系列教程之(八)Shell printf命令详解
在上一篇:Linux Shell系列教程之(七)Shell输出这篇文章中,已经对Shell printf命令有了一个简略的介绍,本篇给大家详细介绍下Shell中的printf命令. 一.Shell p ...
- Linux Shell脚本入门教程系列之(八)Shell printf命令详解
本文是Linux Shell脚本系列教程的第(八)篇,更多shell教程请看:Linux Shell脚本系列教程 在上一篇:Linux Shell系列教程之(七)Shell输出这篇文章中,已经对She ...
- Shell printf 命令
上篇博文我们说了 Shell echo-使用echo实现更复杂的输出格式控制 这篇博文我们来学习 Shell 的另一个输出命令 printf. 语法 printf 命令模仿 C 程序库(library ...
- shell printf命令:格式化输出语句
printf 命令用于格式化输出, 是echo命令的增强版.它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同. 注意:printf 由 POSIX 标准所定义,移植性要比 ech ...
- shell--6、Shell printf 命令
printf 命令模仿 C 程序库(library)里的 printf() 程序. 标准所定义,因此使用printf的脚本比使用echo移植性好. printf 使用引用文本或空格分隔的参数,外面可以 ...
- 【Shell牛客刷题系列】SHELL21 格式化输出:来看个printf命令的小彩蛋~
该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Shell>.欢迎关注专栏~ 本 ...
- matlab printf格式化输出,Shell printf格式化输出命令
printf 是 awk 的重要格式化输出命令,本节我们先介绍一下 printf 命令如何使用. 需要注意,在 awk 中可以识别 print 输出动作和 printf 输出动作(区别是:print ...
- Shell printf格式化输出命令
printf 是 awk 的重要格式化输出命令,本节我们先介绍一下 printf 命令如何使用. 需要注意,在 awk 中可以识别 print 输出动作和 printf 输出动作(区别是:print ...
- linux中printf命令,Linux中printf命令使用实例
在编写shell脚本时,我们使用echo打印到标准输出.echo是一个简单的命令,但其功能有限,想要更好的控制输出格式,可以使用printf命令. printf的语法格式: # printf 格式 参 ...
最新文章
- Python 使用 Flask框架记录
- 上传图片到linux返回url,Springboot 将前端传递的图片上传至Linux服务器并返回图片的url(附源码)...
- android 中如何模拟back键
- 剑指offer之找到链表里面包含环的入口节点
- 妲己机器人需要什么条件才能使用_estar零封YTG:平头哥快乐电竞,只有妲己没亚瑟,差评...
- 计算机桌面图标教案,计算机教案模板
- 今年双12全天 邮政、快递企业共揽收邮(快)件达4.6亿件
- JSF----事件处理----实时事件
- 内外兼修的移动办公伴侣:联想YOGA S730评测体验
- 软件开发项目 衡量指标_不衡量开发人员—衡量项目
- 当我在浏览器输入 www.baiu.com 之后发生了什么
- stripe海外支付php教程
- 关于计算机应用梦想作文,我为梦想而努力700字作文,为梦想而奋斗作文800字
- Python多线程-手慢无的真相
- 配置完dcom需要重启计算机,DCOM电脑自动重启(win7系统一直反复重启)
- 阿拉尔市谷歌高清卫星地图下载
- 【矩阵论】5. 线性空间与线性变换——生成子空间
- 多激光雷达外参标定算法与源码解析(一):基于BLAM的建图模块
- 那个可能会改变世界的参议员
- 数据库云管平台 zCloud v3.5发布,智能化和国产数据库支持能力再增强
热门文章
- 剖析Caffe源码之ImageDataLayer
- (TTSR)Learning Texture Transformer Network for Image Super-Resolution
- HTML5表单提交和PHP环境搭建
- 爬虫入门学习:爬取股票论坛信息
- 监督学习之knn、naive bayes、决策树算法实验_机器学习基本概念
- python找图是什么模块-python中模块查找的原理与方法详解
- Guojiz网址导航系统PHP网站源码
- linux mysql connector_fd_在CentOS里使用MySQL Connector/C++
- ci持续集成工程师前景_『中级篇』docker之CI/CD持续集成-项目生成镜像(76)
- 帝国cms listinfo.php,帝国CMS动态列表应用之在列表中显示指定的会员组会员发布的信息...