Shell 格式化输出数字、字符串(printf)
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)的更多相关文章
- Shell 格式化输出printf、awk
目录 Shell 文件的格式化与相关处理 printf.awk 格式化打印printf 案例.格式化输出文件内容 输出命令echo 案例 awk数据处理工具 语法格式 处理流程 AWK内置变量 条件 ...
- Java - 格式化输出JSON字符串的两种方式
目录 1 使用阿里的fastjson 1.1 项目的pom.xml依赖 1.2 Java示例代码 2 使用谷歌的gson 2.1 项目的pom.xml依赖 2.2 Java示例代码 1 使用阿里的fa ...
- 使用BigDecimal进行精确运算以及格式化输出数字
一.引言 借用<Effactive Java>这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供 ...
- python3 格式化输出,字符串操作,模块,列表,元组
初识python,在网上看了老男孩的视频,建立一个博客将自己所学的python知识记录下来. input加密,用于输入密码的阶段. import getpass user = input(" ...
- 在html中怎么格式化输出json字符串
#今天的项目用到,看俊哥找到,特此记录下来 步骤: 1.在html页面中输入下面的标签,必须是在pre标签内输出格式才会生效: <pre id="songReqJson"&g ...
- Java自学-数字与字符串 格式化输出
Java 使用printf或format 进行格式化输出 步骤 1 : 格式化输出 如果不使用格式化输出,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐 使用格式化输出,就可以简洁明了 %s ...
- C printf格式化输出
转载:https://blog.csdn.net/wucz122140729/article/details/98434702 格式化输出 格式化输出的函数有printf.sprintf和 ...
- C语言中格式化输出的转换说明的fldwidth和precision解析
首先说什么是C语言的格式化输出,就是printf和它的几个变种(grep -E "v?(sn|s|f)printf").像这些函数都有一个参数format,format中可以加点转 ...
- java之格式化输出
参考http://how2j.cn/k/number-string/number-string-foramt/320.html#nowhere 格式化输出 如果不使用格式化输出,就需要进行字符串连接, ...
随机推荐
- Linux VMware安装VMTools工具
安装VMTools工具 2)先启动CentOS并成功登录如下图,发现底部提示且窗口中等大小,准备安装 3)选择虚拟机菜单栏--安装VMware tools 4)光驱自动挂载VMTools 5)右键解压 ...
- MVC4.0,并完美结合Razor引擎
本文主要解决“当前上下文不存在ViewBag”的问题, 在View视图实际使用过程中,如果引用不正确会提示“当前上下文不存在ViewBag”,首先需要引入“Microsoft.CSharp”类库 然后 ...
- Linux内核移植到JZ2440
一.准备工作:1.Linux内核:Linux2.6.22.6,可从www.kernel.org上下载:2.交叉工具编译链:arm-linux-gcc-3.4.5-glibc-2.3.6:3.yaffs ...
- NPC问题及证明
致谢:http://www.docin.com/p-1902790324.html
- 启动bind失败
systemctl start named 报错: control process exited, code=exited status=1 Failed to start Berkeley Inte ...
- 黄聪: bootstrap 多模态框实现
默认情况下,bootstrap模态框是不支持多个覆盖的,下面是一个解决办法(本人亲测), 将下面的代码复制到当前需要多个模态框的页面,问题就可以解决 $(document).on('show.bs.m ...
- js页面滚动时层智能浮动定位实现
直接上代码 $.fn.smartFloat = function (className) { var position = function (element) { var top = element ...
- mysql 事务学习
1.事务 逻辑上的一组操作,组成这组操作的各个逻辑单元要么一起成功,要么一起失败. 2.事务特性 原子性:强调事务的不可分割.一致性:强调的是事务的执行的前后,数据的完整性要保持一致.隔离性:一个事务 ...
- LeetCode——18. 4Sum
一.题目链接:https://leetcode.com/problems/4sum/ 二.题目大意: 给定一个数组A和一个目标值target,要求从数组A中找出4个数来使之构成一个4元祖,使得这四个数 ...
- openssl命令实例
基本知识 1,证书标准 X.509 X.509 - 这是一种证书标准,主要定义了证书中应该包含哪些内容.其详情可以参考RFC5280,SSL使用的就是这种证书标准. X.509的证书文件,一般以.cr ...