linux shell 数字格式化输出,linux shell printf 格式化输出 数字 字符串

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

1.转义

\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

2.左右 对齐

$ printf "|%-7s||%7s||%s|\n" Hello world "my love."

|Hello || world||my love.|

$ printf "%s/%s\n" `pwd` `ls -1 csv-cron*`

/home/cloudil/for_sunny/csv-crontab.sh

$ printf "%s%s\n" `pwd` `ls -1 csv-cron*`

/home/cloudil/for_sunnycsv-crontab.sh

3. 回车 和 换行

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

$ cat n.sh

#!/bin/bash

#

declare -i k=0

#

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+1

if [ $k -eq 55 ]

then

k=0

printf "\n"

fi

done

$ cat r.sh

#!/bin/bash

#

declare -i k=0

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+1

if [ $k -eq 55 ]

then

k=0

printf "\r"

fi

done

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

$ ./n.sh

*******************************************************

*******************************************************

*****************\^C

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

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

$ ./r.sh

-------*-----------------------------------------------

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

实例:

#!/bin/bash

name="matentgfei"

age="22"

dis_ () {

cat <

输出:

[view@file ~]$ ./cat.sh

name: matentgfei

age: 22

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值