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 精确排版,脚本更可靠。