Linux:printf指令
学习自:Linux printf命令详解 - 面具下的戏命师 - 博客园
1、说明
用过C语言和Java的应该都知道printf这个格式化输出函数。
它也被整合为了Linux的一个指令,用于可以自定义格式化输出的内容。
与echo相比,echo输出后会换行,printf默认不会,如果有这个需要可以在输出内容中加\n来实现。
printf通常用在shell脚本中,配合awk实现格式化输出,详见:
2、用法
printf 格式化字符串 [参数1 参数2 ……]
实际表现为,会将参数1、参数2、……套入到中间的格式化字符串中,依次输出。
类似于
for i in [参数1,参数2,……]
printf 格式化字符串
例如
printf "%s\n" aa bb cc dd ee aa bb cc dd ee
3、格式化字符串
输出类型:以%开头
输出类型 |
说明
|
| %c | ASCII字符 |
| %s | 字符串(当只有一个%s时,相当于把后边参数做for循环输出;有多个%s则按顺序把后边的参数填到这些%s处) |
| %-ns | 字符串(-表示左对齐,n表示输出几个字符) |
| %-ni | 输出整数,n代表输出几个数字 |
| %f | 小数点右边的位数 |
| %m.nf | 浮点数,m代表全部位数,n代表小数位数 |
| %b | 如果参数中存在转义字符,可以使用该%b进行格式占位,后续输出时对应的转义字符会被转义 |
| %d、%i | 十进制整数 |
| %o | 不带正负号的八进制值 |
| %u | 不带正负号的十进制值 |
| %x | 不带正负号的十六进制值 |
| %X | 带正负号的十六进制值(不要据此认为%O和%U是带正负号的八进制和十进制) |
| %% | 代表%自身 |
输出特殊格式(换行、占位):以\开头
输出格式 |
说明 |
| \a | 输出警告声音 |
| \b | 输出退格键 |
| \f | 清除屏幕 |
| \n | 换行 |
| \r | 回车 |
| \t | 水平输出TAB |
| \v | 垂直输出TAB |
| \\0\\自身 |

浙公网安备 33010602011771号