在编写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命令。

linux中printf命令,Linux中printf命令使用实例相关推荐

  1. linux中的shell有printf吗,Linux Shell系列教程之(八)Shell printf命令详解

    在上一篇:Linux Shell系列教程之(七)Shell输出这篇文章中,已经对Shell printf命令有了一个简略的介绍,本篇给大家详细介绍下Shell中的printf命令. 一.Shell p ...

  2. mysql隐藏密码_MySQL在Linux系统中隐藏命令行中的密码的方法

    在命令行中输入命令并不是一个好主意,会造成安全问题.但是如果你决定去写一个应用,而这个应用需要在命令行中使用密码或者其他敏感信息.那么,你能通过以下方法禁止系统的其他用户轻易的看到这些敏感数据 呢?, ...

  3. linux将日历信息导出到,在 Linux 命令行中规划你的假期日历

    原标题:在 Linux 命令行中规划你的假期日历 将命令链接在一起,构建一个彩色日历,然后在暴风雪中将其拂去. -- Jason Baker 欢迎阅读今天推出的 Linux 命令行玩具降临日历.如果这 ...

  4. 【Linux】大数据开发中常用的shell命令

    内容目录 一.date 二.find 三.awk 四.cut 五.if 六.sort 一.date 具体的用法如下: 显示当前日期和时间 date +%Y-%m-%d\ %H:%M:%S 将日期转换为 ...

  5. linux中gawk用法,Linux - gawk 命令

    gawk 是 awk 的 GUN 版 =========================================== 是一种<模式扫描和处理>语言.它搜索一个或多个文件,查看这些文 ...

  6. linux之awk命令格式化输出(printf)使用技巧

    linux之awk命令格式化输出(printf)使用技巧 在使用awk命令的过程中输出的每一列总是对不齐,看着很乱,如下: [root@linuxforliuhj ~]# awk -F ": ...

  7. Linux服务端开发——Linux中stat函数和stat命令使用详解

    这篇文章主要介绍了Linux中stat函数和stat命令使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 stat函数和s ...

  8. linux内存使用统计,Linux 中free命令检查内存使用情况

    我们都知道, IT 基础设施方面的大多数服务器(包括世界顶级的超级计算机)都运行在 Linux 平台上,因为和其他操作系统相比, Linux 更加灵活.有的操作系统对于一些微乎其微的改动和补丁更新都需 ...

  9. python中的 怎么用_Python中如何调用Linux命令

    一.使用os模块 In [1]: import os #导入os模块 In [2]: os.system('ls') anaconda-ks.cfg epel-release-7-5.noarch.r ...

最新文章

  1. 前端、云与人工智能的碰撞 | GDG广州
  2. Assertion desc failed at src/libswscale/swscale_internal.h:668
  3. Java程序员转Android开发必读经验
  4. 万物皆可“小程序”——迟到的iOS 14之猜想
  5. 大剑无锋之拦截器和过滤器的区别【面试推荐】
  6. Shell按行读取文件的3种方法
  7. 集合三人斗地主的思路
  8. linux中权限765啥意思,Linux中的文件权限
  9. 2016上半年中国云存储排行榜:阿里云居榜首
  10. jquery/原生js/css3 实现瀑布流以及下拉底部加载
  11. python简明教程_05
  12. 关于 Activity 中 must implement OnFragmentInteractionListener 的问题
  13. 蒙圣光:2018年IT行业的八大趋势
  14. 使用LibreOffice实现word转pdf(python代码)
  15. libero soc 仿真74HC161
  16. iOS--CFMessagePort实现进程间通信
  17. Java面试题十篇基本问题,学完这些我就不信拿不到offer
  18. 字节面试杂谈——MySQL、Redis
  19. 【心电信号】基于多种滤波去除心电信号基线漂移含Matlab源码
  20. A-Frame WebVR试玩报告

热门文章

  1. rn 实现上下滑动选择列表_用大前端技术实现的一款仿Boss直聘app(已开源)
  2. python set 随机_python – Set.pop()不是随机的吗?
  3. 数据流计算模型及其在大数据处理中的应用
  4. oracle PL/SQL编程基础
  5. 【操作系统】Semaphore处理哲学家就餐问题
  6. 【操作系统】库函数与系统调用的区别
  7. java线程池之一:创建线程池的方法
  8. js中startsWith 函数不能在任何浏览器兼容的问题
  9. 教徒计划出品:升级vCenter41到vCenter5
  10. sql server中扩展存储过程