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

示例

下面是一些示例:

  1. 输出字符串:
printf "Hello,Shell\n"
  1. 输出整数:
printf "%d \n" 100
  1. 输出浮点数:
printf "%f \n" 3.1415926
  1. 输出多个参数:
printf "%d %s %f\n" 100 "hello" 3.14
  1. 控制填充宽度:
printf "%10s\n" "hello"  #输出"     hello"
printf "%-10s\n" "hello" #输出"hello     "
  1. 控制输出精度:
printf "%.3f\n" 3.14159 #输出3.142
  1. 八进制和十六进制:
printf "%o\n" 8 #输出"10"
printf "%x\n" 255 #输出"ff"
  1. 输出指针的值:
printf "%p\n" $HOME 

结论

printf命令综合了输出字符串、数字、浮点数等类型到标准输出的功能,并且通过格式控制符和标志符,可以调整输出结果的格式。因此在脚本编程中,printf命令是非常重要的,值得熟练掌握使用。