printf命令

printf命令用于格式化输出,类似于C/C++中的printf函数。

默认不会在字符串末尾添加换行符。

命令格式:

printf format-string [arguments...]

用法示例

脚本内容:

printf "%10d.\n" 123  # 占10位,右对齐
printf "%-10.2f.\n" 123.123321  # 占10位,保留2位小数,左对齐
printf "My name is %s\n" "yxc"  # 格式化输出字符串
printf "%d * %d = %d\n"  2 3 `expr 2 \* 3` # 表达式的值作为参数

输出结果:

      123.
123.12    .
My name is yxc
2 * 3 = 6

常用格式符

格式符 说明
%s 字符串
%d 十进制整数(%i 等价)
%f 浮点数,可用 %.2f 控制小数位数
%c 单个字符
%x / %o 十六进制 / 八进制整数
%e 科学计数法
%% 输出一个字面量的 %

宽度与对齐写在 % 与格式符之间:%10s 占 10 位右对齐,%-10s 左对齐,%.3s 截取前 3 个字符。格式符数量多于参数时,缺少的参数以 0(%d)或空串(%s)填充;参数多于格式符时,format-string 会被重复使用直到参数耗尽,例如 printf "%s\n" a b c 会逐行输出 a、b、c。


项目分区导航echo命令 ⬅️ | 14-printf命令 | ➡️ test命令与判断符号