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 格式化输出 如果不使用格式化输出,就需要进行字符串连接, ...
随机推荐
- C#:decimal的去0显示
public static string DecimalToString(decimal d) { return d.ToString("#0.######"); } 后面的0会给 ...
- Kafka Stream
Kafka Stream是Apache Kafka从0.10版本引入的一个新Feature(当前:1.0.0-rc0,参见:https://github.com/apache/kafka/releas ...
- MySql 常见错误代码大全 VV2
从机一直1593错误,排查了半天发现是从的配置文件中的server-id没改导致,此低级错误记录下警醒自己 B.1. 服务器错误代码和消息 服务器错误信息来自下述源文件: · 错误消息信息列在shar ...
- MySQL测试报告
硬件配置: 3台服务器:192.168.23.168, 192.168.23.169, 192.168.23.170 硬盘:230G 内存:16G Linux内核:Linux geoserver. ...
- Linux配置Python默认版本
我们知道在Windows下多版本共存的配置方法就是改可执行文件的名字,配置环境变量. Linux中的配置原理差不多,思路就是生成软链接,配置到环境变量. 在没配置之前,我的Ubuntu中安装了pyth ...
- MySQL 单条记录长度最大65535
今天设计表结构,加了几个字段,结果报错了 Ligne trop grande. Le taille maximale d'une ligne, sauf les BLOBs, est 65535... ...
- ADO.NET目录汇总1
1.引用命名空间: using System.Data; using System.Data.SqlClient;[访问SQL Server定义的类] 2.连接字符串 string connectio ...
- html json 导出Excel
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【NIO】之IO和NIO的区别
在Java1.4之前的版本,Java对I/O的支持并不完善,开发人员在开发高性能I/O程序的时候,会面临以下几个问题: 1.没有数据缓存区,I/O性能存在问题 2.没有C/C++通道的概念,输入和输出 ...
- seo优化之域名泛解析优缺点分析
原文地址:http://www.phpddt.com/web/analysis-of-domain-name.html 自己也算半个SEOER,虽然没从事过优化工作,由于自己很感兴趣,每天还是会去看很 ...