You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
2.0 KiB

7 years ago
printf
===
格式化并输出结果
6 years ago
## 说明
7 years ago
**printf命令** 格式化并输出结果到标准输出。
### 语法
```
printf(选项)(参数)
--help在线帮助
--version显示版本信息。
```
### 参数
* 输出格式:指定数据输出时的格式;
* 输出字符串:指定要输出的数据。
**格式替代符**
* %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
* %% 字面意义的%
**转义序列**
* \a 警告字符通常为ASCII的BEL字符
* \b 后退
* \c 抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效而且任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符都被忽略
* \f 换页formfeed
* \n 换行
* \r 回车Carriage return
* \t 水平制表符
* \v 垂直制表符
* \\ 一个字面上的反斜杠字符
* \ddd 表示1到3位数八进制值的字符仅在格式字符串中有效
* \0ddd 表示1到3位的八进制值字符
### 实例
```
printf "hello world"
```
```
#!/bin/bash
printf "%-5s %-10s %-4s\n" NO Name Mark
printf "%-5s %-10s %-4.2f\n" 01 Tom 90.3456
printf "%-5s %-10s %-4.2f\n" 02 Jack 89.2345
printf "%-5s %-10s %-4.2f\n" 03 Jeff 98.4323
```
* %-5s 格式为左对齐且宽度为5的字符串代替-表示左对齐),不使用则是又对齐。
* %-4.2f 格式为左对齐宽度为4保留两位小数。