Shell中,除了常用的echo输出命令之外,还有一个printf命令。
Printf命令可以说是echo的加强版,用于格式化输出。Printf的移值性要比echo好。
和echo命令一样,printf命令可以用于输出简单的字符串。如:
#/bin/bash printf "Hello shell!"
运行结果:
Hello shell!
printf命令默认是不自动换行的。要换行需要使用"\n"转义字符。
printf的标准语法:
printf format-string [arg...]
format-string为输出格式控制符,arg为参数列表。
printf()使用的C语言的printf很相似,关于C中的有关功能这里不再描述,只讨论两者的不同之处。
shell中:
printf不需要括号
format-string字段可以不加引号,但最好加上,单引号双引号均可。
参数多于格式控制符(%)时,format-string 可以重用,可以将所有参数都转换。
参数arg用空格分开,不用逗号。
printf格式控制符
%b 相对应的参数被视为含有要被处理的转义序列之字符串。
%c ASCII字符。显示相对应参数的第一个字符
%d, %i 十进制整数
%e 浮点格式
%E 浮点格式
%f 浮点格式
%g %e或%f转换,看哪一个较短,则删除结尾的零
%G %E或%f转换,看哪一个较短,则删除结尾的零
%o 不带正负号的八进制值
%s 字符串
%u 不带正负号的十进制值
%x 不带正负号的十六进制值,使用a至f表示10至15
%X 不带正负号的十六进制值,使用A至F表示10至15
%% 字面意义的%