如果有人跟你说:echo很简单,不就是打印一句话吗?
那它大概率会错过一个运维效率神器。在linux世界里,越是基础的命令,越容易被低估。echo不仅能打印,还能写配置、打日志、做提示、拼参数、输出彩色进度条,脚本里80%的输出全靠它。
一、echo的常用参数
echo命令在日常运维场景只需要记住以下两个参数就够了。
-n:不自动换行(做进度条、单行拼接必备)
-e:启用转义(\n 换行、\t 制表符、颜色输出)
语法格式:
echo [选项] "内容/变量"二、echo的5种基础用法
1. 标准输出
echo "Hello world"echo '单引号原样输出,不解析变量'

要点:双引号解析变量,单引号纯文本。
2.输出变量
#!/bin/bash#系统版本OS_VERSION=$(cat /etc/redhat-release)echo "当前系统版本:$OS_VERSION"

常在脚本中使用。
3.不换行输出(-n)
做单行提示、进度条核心,中间等待2秒:
echo -n "正在加载..."sleep 2echo "完成"

4. 转义字符(-e)
echo -e "姓名\t年龄\t城市\n张三\t25\t北京\n李四\t30\t上海"#也可以使用自动规整column -techo -e "姓名\t年龄\t城市\n张三\t25\t北京\n李四\t30\t上海" | column -t

常用转义:
5. 输出到文件(重定向)
#覆盖写入(清空再写),注意做好备份echo "PORT=8080" > app.conf#追加写入(日志常用)echo "$(date +%F_%T) 服务启动" >> /var/log/app.log


这在我们日常的运维中使用最大,主要用在写配置、写日志。
三、echo的高级用法
1. 彩色输出(脚本提示更醒目)
#绿色成功echo -e "\033[32m[SUCCESS] 任务完成\033[0m"#红色错误echo -e "\033[31m[ERROR] 配置文件不存在\033[0m"#黄色警告echo -e "\033[33m[WARN] 磁盘使用率超80%\033[0m"

颜色代码说明
• \033[32m:绿色字体,\033[31m:红色,\033[33m:黄色
• \033[0m:重置终端样式,必须加,否则后续输出会继承颜色,一般脚本中常用。
2. 单行进度条
echo -n "进度:["for i in {1..20}; doecho -n "#"sleep 0.1doneecho "] 100%"

逐字符输出 #,模拟加载进度条,走完显示 100%。
3. 快速生成配置文件
一键生成相关业务配置
cat > .env <<EOFDB_HOST=127.0.0.1DB_PORT=3306DB_USER=rootDB_PASS=123456EOF
4. 输出特殊字符
#原样输出 $ * " 'echo '密码:Pa$sw0rd* 注意符号'

注意单双引号的区别。
5. 输出以 “-” 开头的文本
echo -- "-n 不是参数,是文本"
避免被当做参数
四、echo命令使用的注意事项
1.单引号不解析变量
name=张三echo '$name' # 输出 $nameecho "$name" # 输出 张三

1.脚本日志输出
#!/bin/bashecho -e "\033[32m[INFO] $(date +%F_%T) 开始启动服务\033[0m"if [ -f "app.jar" ]; thennohup java -jar app.jar > /dev/null 2>&1 &echo -e "\033[32m[SUCCESS] 服务启动成功\033[0m"elseecho -e "\033[31m[ERROR] app.jar 不存在\033[0m"exit 1fi

2.一键生成主机信息
echo "===== 服务器信息 =====" > server-info.txtecho "主机名:$(hostname)" >> server-info.txtecho "内核:$(uname -r)" >> server-info.txtecho "IP:$(hostname -I | awk '{print $1}')" >> server-info.txtcat server-info.txt

echo命令看着简单,用好能少写很多复杂代码。把上面的例子复制到服务器跑一遍,马上就能上手。