Linux echo 命令使用说明
echo 命令使用说明(Linux)
适用环境
- Bash/Zsh 等常见 Shell(
echo通常为内建命令) - 也可能存在外部
/bin/echo(行为与内建略有差异)
基本语法
echo [选项] [字符串...]
常用选项
-n: 结尾不输出换行-e: 解析反斜杠转义(非 POSIX,部分系统默认无效)-E: 禁用转义解析(通常为默认行为)
说明:不同系统/不同 Shell 对 -e/-E 的支持存在差异;可移植脚本更推荐使用 printf。
常见转义(配合 -e)
\n: 换行\t: 制表符(Tab)\r: 回车\a: 响铃(Beep)\b: 退格\c: 结尾不再输出后续内容\e或\x1b: ESC(有的实现不支持\e)\0NNN: 八进制字符(NNN 为 1-3 位八进制)\xHH: 十六进制字符(HH 为 1-2 位十六进制)
示例:
echo -e "第一行\n第二行"
echo -e "列1\t列2\t列3"
不换行输出
echo -n "正在处理..."; sleep 1; echo "完成"
重定向输出到文件
- 覆盖写入:
> - 追加写入:
>>
echo "hello" > file.txt
echo "world" >> file.txt
以 root 权限写入(避免 sudo 只作用于 echo 而非重定向):
echo "配置" | sudo tee /etc/my.conf > /dev/null
多行文本输出
- 使用转义换行:
echo -e "line1\nline2\nline3"
- 推荐使用
printf(可移植、格式强):
printf "line1\nline2\nline3\n"
- 写入多行到文件(Here-Doc):
cat > notes.txt << 'EOF'
第一行
第二行
包含 $VAR 与 \n 等字符不会被展开
EOF
颜色与高亮(ANSI 转义)
echo -e "\e[31m红色\e[0m 普通 \e[1m加粗\e[0m"
常用颜色码:30-37 前景色,90-97 亮色;40-47 背景色。\e[0m 重置。
变量与命令替换
name="Alice"
echo "Hello, $name" # 变量
echo "今日日期: $(date +%F)" # 命令替换
注意:若包含空格或通配符,建议加引号:
echo "$PATH"
与 printf 的对比(为何常推荐 printf)
echo在不同平台的选项与转义行为不一致(如-e)。printf语义一致、可控,适合脚本与复杂格式化:
printf "%-10s %5d\n" "user" 42
常见用法示例
# 1) 追加日志并带时间戳
echo "[$(date +%F' '%T)] task done" >> /var/log/app.log
# 2) 输出 JSON(注意引号)
echo '{"name":"bob","id":1}'
# 3) 生成简单配置文件
echo "PORT=8080" > .env
echo "DEBUG=true" >> .env
# 4) 输出空行
echo
# 5) 显示包含反斜杠的原文
echo "path=C:\\Windows\\System32"
跨平台与兼容性提示
-
echo更适合简单输出;脚本严谨性与可移植性优先时使用printf。 -
在
dash、busybox、fish等环境里,echo -e行为可能不同。 -
区分 Shell 内建
echo与/bin/echo:type echo # 查看 echo 来自何处
速查表
- 基础:
echo "text" - 不换行:
echo -n "text" - 解析转义:
echo -e "a\nb" - 覆盖/追加到文件:
> / >> - 写 root 文件:
echo ... | sudo tee /path - 推荐复杂输出:使用
printf

浙公网安备 33010602011771号