Appearance
printf 命令
基本用法
输出文本
bash
#!/bin/bash
# 输出文本
printf "Hello, World!\n"输出变量
bash
#!/bin/bash
# 定义变量
name="张三"
# 输出变量
printf "你好, %s!\n" "$name"格式说明符
字符串
bash
#!/bin/bash
# 输出字符串
printf "姓名: %s\n" "张三"
printf "城市: %s\n" "北京"整数
bash
#!/bin/bash
# 输出整数
printf "年龄: %d\n" 25
printf "数量: %d\n" 100浮点数
bash
#!/bin/bash
# 输出浮点数
printf "价格: %.2f\n" 19.99
printf "温度: %.1f\n" 25.5字符
bash
#!/bin/bash
# 输出字符
printf "首字母: %c\n" "A"
printf "符号: %c\n" "@"宽度和精度
宽度
bash
#!/bin/bash
# 设置宽度
printf "%10s\n" "Hello"
printf "%10s\n" "World"左对齐
bash
#!/bin/bash
# 左对齐
printf "%-10s\n" "Hello"
printf "%-10s\n" "World"精度
bash
#!/bin/bash
# 设置精度
printf "%.2f\n" 3.14159
printf "%.4f\n" 3.14159宽度和精度
bash
#!/bin/bash
# 设置宽度和精度
printf "%10.2f\n" 3.14159
printf "%-10.2f\n" 3.14159转义字符
常用转义字符
bash
#!/bin/bash
# 换行
printf "Hello\nWorld\n"
# 制表符
printf "Hello\tWorld\n"
# 回车
printf "Hello\rWorld\n"
# 反斜杠
printf "Hello\\World\n"实用示例
示例1:表格
bash
#!/bin/bash
# 表格头
printf "%-10s %-10s %-10s\n" "姓名" "年龄" "城市"
printf "%-10s %-10s %-10s\n" "----" "----" "----"
# 表格内容
printf "%-10s %-10d %-10s\n" "张三" 25 "北京"
printf "%-10s %-10d %-10s\n" "李四" 30 "上海"
printf "%-10s %-10d %-10s\n" "王五" 28 "广州"示例2:进度条
bash
#!/bin/bash
# 进度条
for i in {1..100}; do
printf "\r进度: [%-50s] %d%%" $(printf '#%.0s' $(seq 1 $((i / 2)))) $i
sleep 0.05
done
printf "\n完成!\n"示例3:格式化数字
bash
#!/bin/bash
# 格式化数字
printf "整数: %d\n" 12345
printf "浮点数: %.2f\n" 12345.6789
printf "科学计数法: %e\n" 12345.6789
printf "十六进制: %x\n" 255
printf "八进制: %o\n" 255示例4:日期时间
bash
#!/bin/bash
# 日期时间
date=$(date '+%Y-%m-%d %H:%M:%S')
printf "当前时间: %s\n" "$date"最佳实践
1. 使用格式说明符
bash
# 好的做法
printf "姓名: %s\n" "张三"
# 不好的做法
echo "姓名: 张三"2. 使用引号
bash
# 好的做法
printf "Hello, %s!\n" "$name"
# 不好的做法
printf Hello, %s!\n $name3. 使用换行符
bash
# 好的做法
printf "Hello, World!\n"
# 不好的做法
printf "Hello, World!"总结
printf 命令的关键点:
- 基本用法:
printf "格式" 参数 - 格式说明符:
%s、%d、%f、%c - 宽度和精度:
%10s、%.2f、%-10s - 转义字符:
\n、\t、\r、\\ - 实用示例:表格、进度条、格式化数字、日期时间
- 最佳实践:使用格式说明符、使用引号、使用换行符
下一节我们将学习 read 命令的使用。