1.语法


  printf打印格式字符串,解释'%'指令和'\'转义。

1.1.转义

  printf使用时需要指定输出格式,输出后不换行。

  printf FORMAT [ARGUMENT]

  printf OPTION

格式控制

\a :报警声

\f :换页

\n :新行

\r :回车

\t :横tab

\v :竖tab

\NNN :一个8进制数,打印ascii字符

\xHH :一个16进制数,打印ascii字符

\uHHHH :4位16进制数,表示的unicode字符(utf-16)

\UHHHHHHHH :8位16进制数,表示的unicode字符(utf-32)

-v :输出到变量

-  :左对其

  转义字符,小实例:

# \f 换页
$ printf "hello\fworker\fhave a good day.\n"
hello
worker
have a good day.
#
# \NNN
$ printf "\141\101\n"
aA
# \xHHH
$ printf "\x61\x41\n"
aA
# \uHHHH
$ printf "\u535a\u000d\u000a\u5ba2\n"


$ printf "\u535a\u5ba2\n"
博客
# \UHHHHHHHH
$ printf "\U0000535a\U00005ba2\n"
博客
$ printf "\U535a\U5ba2\n"
博客
# unicode 兼容 ascii
$ printf "\u61\u41\n"
aA
$ printf "\U61\U41\n"
aA

1.左右“对齐”

$ printf "|%-7s||%7s||%s|\n" Hello world "my love."
|Hello || world||my love.|
$ printf "%s/%s\n" `pwd` `ls - csv-cron*`
/home/cloudil/for_sunny/csv-crontab.sh
$ printf "%s%s\n" `pwd` `ls - csv-cron*`
/home/cloudil/for_sunnycsv-crontab.sh

2.“回车”和“换行”

  实例,对比“n.sh”、“r.sh”的倒数第三行执行效果有何差异,脚本分别如下:

$ cat n.sh
#!/bin/bash
#
declare -i k=
#
until false
do
echo -n '-'
sleep 0.01
echo -e -n '\b\'
sleep 0.01
echo -e -n '\b-'
sleep 0.01
echo -e -n '\b/'
sleep 0.01
echo -e -n '\b*' let k=k+
if [ $k -eq ]
then
k=
printf "\n"
fi
done
$ cat r.sh
#!/bin/bash
#
declare -i k=
echo -n '-------------------------------------------------------'
printf "\r"
#
until false
do
echo -n '-'
sleep 0.05
echo -e -n '\b\'
sleep 0.05
echo -e -n '\b-'
sleep 0.05
echo -e -n '\b/'
sleep 0.05
echo -e -n '\b*'
sleep 0.3
echo -e -n '\b-' let k=k+
if [ $k -eq ]
then
k=
printf "\r"
fi
done

  执行脚本“n.sh”,看看“\n”的效果:

$ ./n.sh
*******************************************************
*******************************************************
*****************\^C

  打印的会一行一行显示出来。

  执行脚本“r.sh”,看看“\r”的效果:

$ ./r.sh
-------*-----------------------------------------------

  就是一直在短横线上从左往右、一遍一遍打印“翻跟头”的星号。


  例子:

#!/bin/bash

name="matentgfei"
age="" dis_ () {
cat <<EOF
name: $name
age: $age
EOF
} dis_

  输出展示:

[view@file ~]$ ./cat.sh
name: matentgfei
age:

Shell 格式化输出数字、字符串(printf)的更多相关文章

  1. Shell 格式化输出printf、awk

    目录 Shell 文件的格式化与相关处理 printf.awk 格式化打印printf 案例.格式化输出文件内容 输出命令echo 案例 awk数据处理工具 语法格式 处理流程 AWK内置变量 条件 ...

  2. Java - 格式化输出JSON字符串的两种方式

    目录 1 使用阿里的fastjson 1.1 项目的pom.xml依赖 1.2 Java示例代码 2 使用谷歌的gson 2.1 项目的pom.xml依赖 2.2 Java示例代码 1 使用阿里的fa ...

  3. 使用BigDecimal进行精确运算以及格式化输出数字

    一.引言    借用<Effactive Java>这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供 ...

  4. python3 格式化输出,字符串操作,模块,列表,元组

    初识python,在网上看了老男孩的视频,建立一个博客将自己所学的python知识记录下来. input加密,用于输入密码的阶段. import getpass user = input(" ...

  5. 在html中怎么格式化输出json字符串

    #今天的项目用到,看俊哥找到,特此记录下来 步骤: 1.在html页面中输入下面的标签,必须是在pre标签内输出格式才会生效: <pre id="songReqJson"&g ...

  6. Java自学-数字与字符串 格式化输出

    Java 使用printf或format 进行格式化输出 步骤 1 : 格式化输出 如果不使用格式化输出,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐 使用格式化输出,就可以简洁明了 %s ...

  7. C printf格式化输出

    转载:https://blog.csdn.net/wucz122140729/article/details/98434702 格式化输出       格式化输出的函数有printf.sprintf和 ...

  8. C语言中格式化输出的转换说明的fldwidth和precision解析

    首先说什么是C语言的格式化输出,就是printf和它的几个变种(grep -E "v?(sn|s|f)printf").像这些函数都有一个参数format,format中可以加点转 ...

  9. java之格式化输出

    参考http://how2j.cn/k/number-string/number-string-foramt/320.html#nowhere 格式化输出 如果不使用格式化输出,就需要进行字符串连接, ...

随机推荐

  1. cgred不能自动将pid放入tasks

    问题: cgred不能自动将pid放入tasks cgred / cgrulesengd - does not move new user pid to task file https://serve ...

  2. 基于redis 3.x搭建集群环境

    由于我团队开发的在线坐席系统,即将面对线上每周3000W的下行投放客户,产品的咨询量可能会很大,基于前期,200W的投放时,前10分钟,大概800问题量,平均一个客户大概8个问题,也就是说每分钟10个 ...

  3. Linux常用命令之定时任务

    定时任务的实现,可以让我们把很多重复的,有规律的事情交给机器做.我们就不用苦逼的烦躁做同一件事,这样也让我们做程序的有更多的乐趣和价值.用技术的手段解决常人花时间精力解决的问题.在Linux下实现定时 ...

  4. 顶级域名和二级域名共享cookie及相互删除cookie

    在CSDN看到一个cookie设置domain时,如何删除的问题, 自己也只知道domain设置为顶级域名时可以被其他二级域名共享,但是如何删除还是有一点搞不清楚,所以特意测试了下cookie和dom ...

  5. Windows 2003 下安装 SQL Server 2008 Express

    .NET Framework 3.5 Service Pack 1(完整程序包) https://www.microsoft.com/zh-cn/download/details.aspx?id=25 ...

  6. IDEA创建简单servlet程序

    创建项目 创建完后的目录结构为: web项目配置 在WEB-INF目录下新建两个文件夹,分别命名未classes和lib(classes目录用于存放编译后的class文件,lib用于存放依赖的jar包 ...

  7. js 把字符串保存为txt文件,并下载到本地

    代码如下 exportRaw('text.txt','123123123') function fakeClick(obj) { var ev = document.createEvent(" ...

  8. window10 禁止更新

    win+R 运行 在服务里找到WindowsUpdate 双击  弹出的对话框 启动类型选禁用

  9. S域传递函数的零点和极点

    传递函数的极点就是对应微分方程的特征根(回忆一下,$\frac{1}{s+a}$是$e^{-a t}$的Laplace变换),因此它们决定了系统自由运动的模态. 传递函数的零点不直接形成自由运动的模态 ...

  10. DS树+图综合练习--二叉树之最大路径

    题目描述 给定一颗二叉树的逻辑结构(先序遍历的结果,空树用字符‘0’表示,例如AB0C00D00),建立该二叉树的二叉链式存储结构 二叉树的每个结点都有一个权值,从根结点到每个叶子结点将形成一条路径, ...