printf 命令模仿 C 程序库(library)里的 printf() 程序。
printf 由 POSIX 标准所定义,因此使用 printf 的脚本比使用 echo 移植性好。
1.printf 命令的语法:
printf format-string [arguments...]
参数说明:
- format-string: 为格式控制字符串
- arguments: 为参数列表。
2.%s %c %d %f都是格式替代符
%-5s 指一个宽度为5个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在5个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
%-4.3f 指格式化为小数,其中.3指保留3位小数,4指宽度为4。
%d %s %c %f 格式替代符详解:
d: Decimal 十进制整数 -- 对应位置参数必须是十进制整数,否则报错!
s: String 字符串 -- 对应位置参数必须是字符串或者字符型,否则报错!
c: Char 字符 -- 对应位置参数必须是字符串或者字符型,否则报错!
f: Float 浮点 -- 对应位置参数必须是数字型,否则报错!
如:其中最后一个参数是 "def",%c 自动截取字符串的第一个字符作为结果输出。
$ printf "%d %s %c\n" 1 "abc" "def" 1 abc d
3.format -string 有无引号
4.格式只有一个,多出的参数仍会按照改格式输出,format-string被重用
5.只有格式,没有参数,%s输出是NULL,%d是0