Shell printf 命令
Shell printf 命令详解
在Shell编程中, printf是一个非常重要的命令。可以用来输出指定格式的文本,它比echo更加灵活,可以通过格式控制符,来调整输出的内容。在本文中,我们将详细介绍printf命令的用法。
命令格式
printf format-string [arguements...]
format-string为格式字符串,[arguments..]为参数列表,可以包含0个以上的参数,它将按照format-string格式输出到标准输出。
格式控制符
格式控制符是由百分号(%)开始,并以一个字母或标志符结尾的占位符。格式控制符告诉printf如何格式化输出,有以下常用的格式控制符。
格式控制符 | 含义 |
---|---|
%d | 十进制有符号整数 |
%u | 十进制无符号整数 |
%f | 浮点数 |
%s | 字符串 |
%c | 单个字符 |
%p | 指针的值 |
%e | 科学计数法的双精度浮点数 |
%x | 十六进制小写 |
%X | 十六进制大写 |
标志符
printf的格式字符串可以包含前置的标志符来控制填充宽度、输出的精度等条件。常用的标志符如下
标志符 | 含义 |
---|---|
- | 左对齐 |
+ | 右对齐 |
0 | 填充前导0,而非空格 |
. | 输出的精度 |
# | 八进制数值前加0o,十六进制加0x或0X |
示例
下面是一些示例:
- 输出字符串:
printf "Hello,Shell\n"
- 输出整数:
printf "%d \n" 100
- 输出浮点数:
printf "%f \n" 3.1415926
- 输出多个参数:
printf "%d %s %f\n" 100 "hello" 3.14
- 控制填充宽度:
printf "%10s\n" "hello" #输出" hello"
printf "%-10s\n" "hello" #输出"hello "
- 控制输出精度:
printf "%.3f\n" 3.14159 #输出3.142
- 八进制和十六进制:
printf "%o\n" 8 #输出"10"
printf "%x\n" 255 #输出"ff"
- 输出指针的值:
printf "%p\n" $HOME
结论
printf命令综合了输出字符串、数字、浮点数等类型到标准输出的功能,并且通过格式控制符和标志符,可以调整输出结果的格式。因此在脚本编程中,printf命令是非常重要的,值得熟练掌握使用。