|
在编写shell脚本时,我们使用echo打印到标准输出。echo是一个简单的命令,但其功能有限,想要更好的控制输出格式,可以使用printf命令。 0 I. ]* Y% I7 I& r' ^' L6 F printf的语法格式 # printf 格式 参数下面是一个例子:; u, N# S L+ {5 E" k# t0 f- A [root@localhost ~]# printf "姓名:%s\n身高:%dcm\n体重:%dkg\n" "小明" "180" "75"& A) x0 K3 V0 N) |' [ 姓名:小明 身高:180cm: l" l b" `" E! }" O 体重:75kg # _* I9 b; C( G0 i4 L8 F+ S% @ 5 L3 e; |+ f/ t- K p. N 6 {$ q+ |' l0 R. p2 o9 ?; K& U
$ n7 `1 P+ h0 N$ j
常用的转义字符
常用的类型转换符 , x( M0 r0 O. G 类型转换说明符是一个字符,用于指定如何解释相应的参数,该字符是必须添加的,以下是显示所有类型转换及其作用的列表:
实 例 实例一& N- j6 [' m+ c, R7 a; p7 K# e该例子使用%d,%x,%o将后面提供的参数转化为十进制、十六进制、八进制。 [root@localhost ~]# printf "Decimal: %d\nHex: %x\nOctal: %o\n" 100 100 1001 z3 q6 a" B8 q9 B3 { j Decimal: 1005 H) I& j, d( [2 `+ R$ s( S Hex: 646 Y1 e$ T6 Y5 O- w% q( G8 i- a Octal: 144 2 ^* z& h3 Z# a+ m 实例二 下面例子使用%.2f,其中.2指参数保留两位小数,f将参数打印为浮点数。[root@localhost ~]# printf "%.2f\n" 3.1415926 3.14 # R, b6 X9 {. k; j: k4 k6 }4 ] 实例三) Y' c3 \- s/ ?/ @' w 下面例子中使用了水平制表符\t。例子中给的参数超过了格式中给出的转换符的数量,多出的参数仍会按照格式输出。[root@localhost ~]# printf "%s \t %s \t %s\n" "姓名" "性别" "年龄" "小明" "男" "18" "小红" "女" "19" "小蓝" "男" "18" 姓名 性别 年龄3 p; l' s4 Z* u5 Y3 Y4 e; ] 小明 男 18 小红 女 199 k& D. K( l8 ?% F7 A 小蓝 男 18 * D2 g+ r. }- h; P
& _* X6 f; n/ a- z2 H 实例四实例中,%-10s , %-8d其中-表示靠左对齐,默认情况下是靠右对齐。10和8表示占用10或者8个字符宽度。\e[1,30;47m ..... \e[0m表示使用粗体字、黑色字体、白色背景,后面的\e[0,m表示重置。 [root@localhost ~]# cat p.sh #!/bin/bash; \' \. i1 Z& S( f4 C, I5 l printf "\e[1;30;47m%-10s %-10s\e[0m\n" "姓名" "年龄" printf "\e[36;47m%-10s %-8d\e[0m\n" "小明" "18" printf "\e[31;47m%-10s %-8d\e[0m\n" "小红" "19" P7 q6 q/ N; m' _1 S+ ~. @, _ printf "\e[34;47m%-10s %-8d\e[0m\n" "小蓝" "19"/ G% h, p1 j! C; k
总 结 本文到此结束,希望对你有帮助!" C" @ A8 {# `- h! |+ O |
微信公众号
手机版