printf 命令详解(萌新必看)

一、printf 命令详解

1.1 基本介绍

printf 命令模仿了 C 语言中的 printf() 函数,其主要作用是按照指定的格式输出文本。与 echo 命令不同,printf 不会自动添加换行符,并且提供了更强大的格式化能力。

1.2 基本用法

1.2.1 printf 语法
printf "指定的格式" "文本1" "文本2" "文本3" ...
1.2.2 示例
printf "Hello, World!\n"

输出:

Hello, World!

二、printf 与 echo 的对比

2.1 自动换行

echo 命令会自动在输出文本后添加换行符:

echo testString

输出:

testString

printf 命令不会自动添加换行符:

printf testString

输出:

testString[root@xiewei ~]#

使用转义字符 \n 添加换行符:

printf "testString\n"

输出:

testString

三、printf 的格式化输出能力

3.1 输出文本的分段

3.1.1 示例
echo "abc def ghi jkl mno"

输出:

abc def ghi jkl mno
3.1.2 使用 printf 分段输出
printf "%s\n" abc def ghi jkl mno

输出:

abc
def
ghi
jkl
mno

3.2 常用格式替换符

替换符 说明
%s 字符串
%f 浮点格式(float 或 double)
%b 包含转义字符的字符串
%c ASCII 字符
%d, %i 十进制整数
%o 不带正负号的八进制值
%u 不带正负号的十进制值
%x 不带正负号的十六进制值(小写)
%X 不带正负号的十六进制值(大写)
%% 表示“%”本身
3.2.1 示例
printf "%s \n" 1 19 18 666

输出:

1 
19 
18 
666 
printf "%f\n" 1 19 18 666

输出:

1.000000
19.000000
18.000000
666.000000

3.3 使用修饰符

3.3.1 左对齐和右对齐

默认右对齐:

printf "%7s %5s %4s\n" 姓名 性别 年龄 张三 男 20 李四 女 18

输出:

姓名    性别  年龄
张三     男   20
李四     女   18

使用 - 左对齐:

printf "%-7s %-5s %-4s\n" 姓名 性别 年龄 张三 男 20 李四 女 18

输出:

姓名    性别  年龄
张三    男    20
李四    女    18
3.3.2 数字修饰符

设置宽度和精度:

printf "%-10s %-12f \n" 火焰兽 180.5289 冰晶兽 -70.666 

输出:

火焰兽   180.528900 
冰晶兽   -70.666000 
printf "%-10s %-12.3f \n" 火焰兽 180.5289 冰晶兽 -70.666

输出:

火焰兽   180.529 
冰晶兽   -70.666 

整数长度修饰:

printf "%-10s %-12d \n" 火焰兽 180 冰晶兽 -70 

输出:

火焰兽   180         
冰晶兽   -70         
printf "%-10s %-12.5d \n" 火焰兽 180 冰晶兽 -70
火焰兽   00180       
冰晶兽   -00070      

你可能感兴趣的:(c++,linux,运维,服务器)