首页 / Linux 命令行入门教程 / 26. echo 与 printf

Linux 命令行入门教程

26. echo 与 printf

本教程共 90 篇 · 第 26 篇

26. echo 与 printf

这两个都是往屏幕(或文件)打字的命令。echo 简单直接,printf 精细可控。

echo 最常用,把一行文字输出出来:

echo "你好,Linux"

打印变量的值,用 $ 引用(变量详见 §76):

name="小明"
echo "欢迎,$name"

-e 启用转义

默认 echo 不解释反斜杠。-e 打开转义,比如 \n 换行、\t 制表符:

echo -e "第一行\n第二行"

-n 则不自动换行,方便拼在同一行:

echo -n "加载中"
echo " 完成"

printf 更守规矩

printf 源自 C 语言,不会自动换行,要自己加 \n。它用格式串控制排版:

printf "姓名:%s 年龄:%d\n" "小红" 18

%s 对应字符串,%d 对应整数。参数按顺序填进格式串的坑里。

想对齐成表格,%-10s 表示占 10 字符宽、左对齐:

printf "%-10s %5d\n" "苹果" 5
printf "%-10s %5d\n" "橙子" 3
Tip

写跨系统、要移植的脚本时,优先用 printf。它的行为在各 Shell 间更一致,echo 偶尔会有差异。

输出到文件

两者都能配合重定向(见 §24)写文件:

echo "配置完成" > status.txt
printf "当前时间:%s\n" "$(date)" >> log.txt
Warning

上面第一行用 > 写 status.txt,会覆盖该文件原有内容。若只想追加,请改 >>(见 §24)。

小结:echo 随手打印、-e 转义;printf%s/%d 精确排版,脚本更可靠。