相当于python的print
命令格式:
echo [选项] [字符串]
为什么需要 echo?
- 信息反馈:向用户显示脚本执行状态或结果
- 调试工具:输出变量值或执行位置,帮助调试脚本
- 交互界面:创建简单的用户交互界面
- 文件生成:快速生成配置文件或脚本
基本用法
#!/bin/bash
# 1、简单文本输出
echo "Hello, World!"
# 2、输出变量
name="sunny"
echo "Welcome, $name!"
# 3、不带引号的输出
# 引号不是必须的,但建议使用以避免意外:
echo hello world!
输出:
Administrator@WIN-20220425YWW MINGW64 /e/一念之间/work/SR/min.tang/projects/shellProjects
$ ./test01.sh
Hello, World!
Welcome, sunny!
hello world!
常用选项
-n选项:不换行输出-e选项:启动转义字符解释
#!/bin/bash
# 1、-n选项
echo -n "Hello, "
echo "World!!!"
# 2、-e选项
echo -e "First line\nSecond line"
输出:
Administrator@WIN-20220425YWW MINGW64 /e/一念之间/work/SR/min.tang/projects/shellProjects
$ ./test01.sh
Hello, World!!!
First line
Second line
常用转义序列
| 转义序列 | 说明 |
|---|---|
\n | 换行 |
\t | 水平制表符 |
\v | 垂直制表符 |
\b | 退格 |
\r | 回车 |
\\ | 反斜杠字符本身 |
高级用法
输出到文件
#!/bin/bash
# 1、重定向输出到文件 >
echo "This will be saved to file" > output.txt
# 2、追加内容到文件 >>
echo "Additional line" >> output.txt
输出:
Administrator@WIN-20220425YWW MINGW64 /e/一念之间/work/SR/min.tang/projects/shellProjects
$ ./test01.sh
Administrator@WIN-20220425YWW MINGW64 /e/一念之间/work/SR/min.tang/projects/shellProjects

彩色输出
使用 ANSI 转义码实现彩色文本:
#!/bin/bash
echo -e "\033[31mRed Text\033[0m"
echo -e "\033[42;31mGreen Background with Red Text\033[0m"
第一行:
echo: 用于输出文本到终端。-e: 这个选项告诉echo解释转义字符。\033: 这是 ASCII 的转义字符,表示开始一个颜色控制序列。[31m: 这是 ANSI 码,用于设置文本的前景色(文本颜色)。31指的是红色。Red Text: 这是被设置颜色的实际文本内容。\033[0m: 这段代码用于重置所有属性(包括颜色),确保后续的输出不会受到前一个文本设置的影响。
第二行echo -e "\033[42;31mGreen Background with Red Text\033[0m":
echo: 同样用于输出文本。-e: 告诉 shell 解释后面的转义字符。\033: 表示开始一个颜色控制序列。[42;31m: 这里的42设置背景颜色为绿色,31仍然是设置前景色为红色。多个属性可以用分号;分开指定。Green Background with Red Text: 被设置颜色的实际文本内容。\033[0m: 用于重置颜色和其他属性。
输出:

颜色代码参考:
- 前景色:30(黑)、31(红)、32(绿)、33(黄)、34(蓝)、35(紫)、36(青)、37(白)
- 背景色:40-47 对应上述颜色
\033[0m重置所有属性
输出命令执行结果
echo "Today is $(date)"
输出:
$ ./test.sh
Today is Sat Jul 4 19:13:50 2026
实际应用示例
创建简单菜单
echo -e "\n\033[1mSystem Menu\033[0m"
echo "1. Check disk space"
echo "2. List running processes"
echo "3. Show system info"
echo -n "Please enter your choice [1-3]: "
echo -n中的-n表示不打印默认的回车,和python中的print('XXX',endle='')类似。

进度条模拟
#!/bin/bash
echo -n "Progress: ["
for i in {1..20}; do
echo -n "#"
sleep 0.1
done
echo "] Done!"
输出:

生成配置文件
#!/bin/bash
cat <<EOF | tee myapp.conf
# Generated by script on $(date)
[Database]
host = localhost
port = 3306
user = appuser
password = secret123
EOF
输出:
当前脚本根目录下会生成配置文件myapp.conf


注意事项
1、引号的重要性:
实例
var="Hello World"
echo $var # 可能有问题,如果变量包含空格
echo "$var" # 正确方式
2、不同Shell的实现差异:
- Bash 内置
echo支持-e选项 - 某些系统上的
/bin/echo可能不支持所有选项 - 可移植脚本建议使用
printf替代复杂echo
3、特殊字符处理:
实例
echo "Cost: \$100" # 输出 $ 符号
echo "Path: /usr/local/bin" # 斜杠不需要转义
总结要点
| 关键点 | 说明 |
|---|---|
| 基本语法 | echo [选项] [字符串] |
| 常用选项 | -n 不换行,-e 启用转义 |
| 变量输出 | 使用 $变量名,建议用双引号包裹 |
| 彩色输出 | 使用 ANSI 转义码 \033[XXm |
| 输出重定向 | > 覆盖文件,>> 追加到文件 |
| 多行输出 | 使用 \n 换行或 Here Document |
| 可移植性建议 | 复杂输出考虑使用 printf |
1615

被折叠的 条评论
为什么被折叠?



