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 格式化输出 如果不使用格式化输出,就需要进行字符串连接, ...
随机推荐
- Elasticsearch的数据导出和导入操作(elasticdump工具),以及删除指定type的数据(delete-by-query插件)
Elasticseach目前作为查询搜索平台,的确非常实用方便.我们今天在这里要讨论的是如何做数据备份和type删除.我的ES的版本是2.4.1. ES的备份,可不像MySQL的mysqldump这么 ...
- AXI Quad SPI
AXI Quad SPI 信息来源
- Windows核心编程 中部分代码 Delphi 实现
// ① Delphi 使用 Interlocked 系列函数 var MyValue:Longint = ; // = Integer begin InterlockedIncrement(MyVa ...
- android摄像头(camera)之buffer管理
一,V4L2驱动申请buffer 视频应用可以通过两种方式从V4L2驱动申请buffer 1. V4L2_MEMORY_USERPTR方式, 顾名思义是用户空间指针的意思,应用层负责分配需要的内存空间 ...
- PI接口无法使用.net4以上的解决方法:无法嵌入互操作类型“PISDKClass”。请改用适用的接口。
Interop type 'PISDKClass' cannot be embedded. Use the applicable interface instead. .net开发中,有时候在引用某些 ...
- C++进阶--模板及关键字typename
//############################################################################ /* * 模板介绍 */ //函数模板 t ...
- LeetCode – LRU Cache (Java)
Problem Design and implement a data structure for Least Recently Used (LRU) cache. It should support ...
- 【spring boot】映射properties文件属性--到Java对象
描述 将*.properties中的内容映射到java对象中: 主要步骤 添加 @Component 注解: 使用 @PropertySource 注解指定配置文件位置: 使用 @Configurat ...
- mac brew 安装 nginx fpm mysql 教程
一. 安装brew 要求:OS X 10.6以上系统,并且安装有XCode命令行工具 对于10.11的系统需要设置下local的权限为当前用户 $ sudo chown -R $(whoami):ad ...
- 单元素枚举类型singleton模块
public enum Elvis { INSTANCE; public void leaveTheBuilding() { System.out.println("Whoa baby, I ...