内置命令printf用来进行格式化的打印输出,语法格式如下:
格式化字符串format一般用双引号括起来,它可以包含三种类型的字符。第一种为普通字符;第二种为转义字符,由反斜杠引出,最常见的、前面也提到过的为\n,用来换行;第三种为格式指示符(format-specifier),由百分号引出,最常见的为用来打印整数的%d和打印字符串的%s。
例如,显示问候语,可以运行echo"Good morning",用printf命令的话,运行:
echo命令默认带着换行符,而printf命令默认不带,所以,在每条printf命令中加换行符\n几乎是必须的。如果不加,那么命令的输出与系统提示符将出现在同一行:
下面是关于格式指示符的例子,显示年龄和名字:
也许读者会问,直接运行命令echo"My age is 20"不就可以吗,为什么这么复杂?printf确实比echo复杂,但功能强大,echo不可能替代printf。
printf的输出默认显示在屏幕上,用选项-v可以让printf的输出不显示在屏幕上,而是记录在一个变量里。例如:
这时,屏幕没有显示输出,Good morning被记录在变量greeting里。显示greeting的值就知道了:
关于转义字符,在第2章讲echo的时候已经讲过,printf命令使用的转义字符与echo命令的基本一致,这里不再重复。关于格式指示符,见表8-7。
表8-7 printf格式指示符
例如,十进制的28,对应的八进制数值为34、十六进制数值为1c(小写字母)或1C(大写字母):
同C语言一样,数字0开头的数为八进制数,0x或者0X开头的数为十六进制数,例如:(www.xing528.com)
下面对比一下%s与%b,就会明白%b的作用。
使用%10.4f时,10表示显示数值的总宽度,4表示小数点后的保留位数,得到2.3568,前面有四个空格,即,向右对齐,总宽度为10:
使用%-10.4f时,是向左对齐,总宽度仍然为10,2.3568的后面有四个空格。为了能明显看出2.3568的后面有四个空格,在\n的前面加一个分号:
使用%15.4e,向右对齐,23.567847显示为2.3568乘以10的一次方,即,2.3568e+01:
使用%-15.4E,总宽度为15,向左对齐,0.00023567847显示为2.3568乘以10的负4次方,即,2.3568E-04:
使用%10.4f,小数点后保留4位,不够4位则补0:
使用%-10.4G,后面的0不显示,总宽度为10:
以上只介绍了printf的一小部分功能。内置命令printf与C语言的函数printf的功能类似,学习过C语言的人掌握它非常容易。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。