Skip to content

echo 命令

基本用法

输出文本

bash
#!/bin/bash

# 输出文本
echo "Hello, World!"

输出变量

bash
#!/bin/bash

# 定义变量
name="张三"

# 输出变量
echo "你好, $name!"

转义字符

常用转义字符

bash
#!/bin/bash

# 使用 -e 选项启用转义字符
echo -e "Hello\nWorld"
echo -e "Hello\tWorld"
echo -e "Hello\vWorld"
echo -e "Hello\rWorld"
echo -e "Hello\\World"

禁用转义字符

bash
#!/bin/bash

# 使用 -E 选项禁用转义字符
echo -E "Hello\nWorld"

选项

-n 选项

bash
#!/bin/bash

# 不输出换行符
echo -n "Hello, "
echo "World!"

-e 选项

bash
#!/bin/bash

# 启用转义字符
echo -e "Hello\nWorld"

-E 选项

bash
#!/bin/bash

# 禁用转义字符
echo -E "Hello\nWorld"

颜色输出

基本颜色

bash
#!/bin/bash

# 定义颜色
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

# 使用颜色
echo -e "${RED}红色文本${NC}"
echo -e "${GREEN}绿色文本${NC}"
echo -e "${YELLOW}黄色文本${NC}"
echo -e "${BLUE}蓝色文本${NC}"

背景颜色

bash
#!/bin/bash

# 定义背景颜色
RED_BG='\033[41m'
GREEN_BG='\033[42m'
YELLOW_BG='\033[43m'
BLUE_BG='\033[44m'
NC='\033[0m' # No Color

# 使用背景颜色
echo -e "${RED_BG}红色背景${NC}"
echo -e "${GREEN_BG}绿色背景${NC}"
echo -e "${YELLOW_BG}黄色背景${NC}"
echo -e "${BLUE_BG}蓝色背景${NC}"

文本样式

bash
#!/bin/bash

# 定义文本样式
BOLD='\033[1m'
DIM='\033[2m'
UNDERLINE='\033[4m'
BLINK='\033[5m'
REVERSE='\033[7m'
NC='\033[0m' # No Color

# 使用文本样式
echo -e "${BOLD}粗体文本${NC}"
echo -e "${DIM}暗淡文本${NC}"
echo -e "${UNDERLINE}下划线文本${NC}"
echo -e "${BLINK}闪烁文本${NC}"
echo -e "${REVERSE}反转文本${NC}"

实用示例

示例1:进度条

bash
#!/bin/bash

# 进度条
for i in {1..100}; do
    echo -ne "进度: ["
    for j in $(seq 1 $((i / 5))); do
        echo -n "="
    done
    for j in $(seq $((i / 5 + 1)) 20); do
        echo -n " "
    done
    echo -ne "] $i%\r"
    sleep 0.05
done
echo ""
echo "完成!"

示例2:菜单

bash
#!/bin/bash

# 定义颜色
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# 显示菜单
echo -e "${GREEN}请选择操作:${NC}"
echo -e "${YELLOW}1) 创建文件${NC}"
echo -e "${YELLOW}2) 删除文件${NC}"
echo -e "${YELLOW}3) 查看文件${NC}"
echo -e "${YELLOW}4) 退出${NC}"

# 读取用户选择
read -p "请输入选项: " choice

echo -e "${GREEN}你选择了: $choice${NC}"

示例3:表格

bash
#!/bin/bash

# 定义颜色
GREEN='\033[0;32m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

# 表格头
echo -e "${GREEN}+----------+----------+----------+${NC}"
echo -e "${GREEN}| 姓名     | 年龄     | 城市     |${NC}"
echo -e "${GREEN}+----------+----------+----------+${NC}"

# 表格内容
echo -e "${BLUE}| 张三     | 25       | 北京     |${NC}"
echo -e "${BLUE}| 李四     | 30       | 上海     |${NC}"
echo -e "${BLUE}| 王五     | 28       | 广州     |${NC}"

# 表格尾
echo -e "${GREEN}+----------+----------+----------+${NC}"

示例4:日志

bash
#!/bin/bash

# 定义颜色
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color

# 日志函数
log() {
    local level="$1"
    local message="$2"
    local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
    
    case $level in
        "INFO")
            echo -e "${GREEN}[$timestamp] [INFO] $message${NC}"
            ;;
        "WARN")
            echo -e "${YELLOW}[$timestamp] [WARN] $message${NC}"
            ;;
        "ERROR")
            echo -e "${RED}[$timestamp] [ERROR] $message${NC}"
            ;;
    esac
}

# 使用日志函数
log "INFO" "程序启动"
log "WARN" "配置文件不存在"
log "ERROR" "连接失败"

最佳实践

1. 使用引号

bash
# 好的做法
echo "Hello, World!"

# 不好的做法
echo Hello, World!

2. 使用 -n 选项

bash
# 好的做法
echo -n "请输入: "
read name

# 不好的做法
echo "请输入: "
read name

3. 使用颜色

bash
# 好的做法
GREEN='\033[0;32m'
NC='\033[0m'
echo -e "${GREEN}成功${NC}"

# 不好的做法
echo "成功"

总结

echo 命令的关键点:

  1. 基本用法echo "文本"
  2. 转义字符:使用 -e 选项
  3. 选项-n-e-E
  4. 颜色输出:使用 ANSI 颜色代码
  5. 实用示例:进度条、菜单、表格、日志
  6. 最佳实践:使用引号、使用 -n 选项、使用颜色

下一节我们将学习 printf 命令的使用。