shell printf命令
printf使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度,左右对齐方式等。默认printf不会像echo自动添加换行符,但可以手工添加\n.
语法:
printf format-string [argumens....]
参数说明:
format-string : 为格式控制字符串
arguments: 为参数列表
例1:
$printf "hello, shell \n"
hello, shell
例2:
printf "%-10s %-8s %4s \n" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f \n" 郭靖 男 66.1234
printf "%-10s %-8s %-4.2f \n" 杨过 男 48.6532
printf "%-10s %-8s %-4.2f \n" 黄蓉 女 45.2654
结果:
姓名 性别 体重kg
郭靖 男 66.12
杨过 男 48.65
黄蓉 女 45.26
注:
- %s %c %d %f 是格式替代符
- %-10s 指一个宽度为10个字符的(-表示左对齐,没有表示右对齐)
- %-4.2f 格式化小数,其中.2指保留2位小数。
printf的转义序列
序列 | 说明 |
---|---|
\a | 警告字符,通常为ASCII的BFL字符 |
\b | 后退 |
\f | 换页 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\n | 垂直制表符 |
\ddd | 表示1 到3位八进制的字符,仅在格式字符串中有效 |