当前位置:首页>Linux>Linux echo 命令实战:从日常用到脚本化,一篇就够

Linux echo 命令实战:从日常用到脚本化,一篇就够

  • 2026-10-11 05:47:43
Linux echo 命令实战:从日常用到脚本化,一篇就够

如果有人跟你说: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

常用转义:

  • \n 换行
  • \t 制表符
  • \b 退格

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}; do  echo -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"  # 输出 张三
2.> 覆盖、>> 追加别搞反
用>写日志会清空历史,一定要注意。
3.颜色输出结尾必须复位
漏写 \033 [0m,后面终端一直变色。
4.特殊符号建议双引号包裹
空格、()、&、| 容易被 Shell 截断。
五、两个实用的脚本

1.脚本日志输出

#!/bin/bashecho -e "\033[32m[INFO] $(date +%F_%T) 开始启动服务\033[0m"if [ -f "app.jar" ]; then  nohup java -jar app.jar > /dev/null 2>&1 &  echo -e "\033[32m[SUCCESS] 服务启动成功\033[0m"else  echo -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命令看着简单,用好能少写很多复杂代码。把上面的例子复制到服务器跑一遍,马上就能上手。

#运维#linux运维#echo实战

Linux运维实战:lshw命令,查硬件就用这一套

别再用cat -n了!Linux行号神器nl的威力,你根本想不到

nload命令,3秒定位网络环路、带宽打满的罪魁祸首

最新文章

随机文章