你希望能够更多地控制输出的格式和位置。
解决方案
使用内建命令 printf。例如:
$ printf '%s = %d\n' Lines $LINES
Lines = 24
$
或者:
$ printf '%-10.10s = %4.2f\n' 'Gigahertz' 1.92735
Gigahertz = 1.93
$
讨论
内建命令 printf 的行为和 C 语言中的同名库函数相似,其中第一个参数是格式控制字符串,之后的参数都根据格式规范(%
)进行格式化。
% 和格式类型(本例为 s 或 f)之间的数字提供了额外的格式化细节。对于浮点类型(f),第一个数字(指示符 4.2 中的 4)是整个字段的宽度。第二个数字(2)是应该在小数点右侧打印出的数位量。注意,结果会按照四舍五入处理。
对于字符串,第一个数字是字段的最大宽度,第二个数字是要输出的字符数量。根据需要,字符串会被截断(长于 max)或用空白填充(不足 min)。如果指示符 max 和 min 相同,那么就可以确保字符串按照该长度输出。指示符左侧的负号表示字符串向左对齐(在字段宽度内)。如果不使用负号,则字符串向右对齐,因此:
$ printf '%10.10s = %4.2f\n' 'Gigahertz' 1.92735
Gigahertz = 1.93
$
可以引用字符串参数,也可以不引用。如果需要保留字符串中嵌入的空白字符(本例的字符串中只有一个单词,不存在空格),或者需要转义字符串中的某些特殊字符(本例也未出现这些特殊字符),可以加上引号 。最好养成将传给 printf 的字符串都放进引号中的习惯,这样一来,需要用到引号时就不会遗漏了。
如果想要转义特殊字符,则需要使用双引号。
酷客网相关文章:
评论前必须登录!
注册