Linux每日一篇 - 30 - echo
Linux文本输出神器!掌握echo命令,灵活控制文本输出,让脚本编写更高效!
echo命令是什么?
echo命令是Linux中最基本的输出命令,用于在终端打印文本或变量内容,是Shell脚本编程的基础工具。
基本用法
# 输出简单文本
echo "Hello World"
# 输出变量值
name="Linux"
echo $name
# 输出命令执行结果
echo $(date)
# 输出不换行
echo -n "No new line"
# 输出包含转义字符的内容
echo -e "Line 1\nLine 2\tTabbed"
# 输出颜色文本
echo -e "\033[31m红色文本\033[0m"
实用技巧
# 常用转义字符:
# \n - 换行
# \t - 制表符
# \r - 回车
# \b - 退格
# \c - 抑制进一步输出
# 输出带颜色的文本
echo -e "\033[32m绿色文本\033[0m"
echo -e "\033[1;31m亮红色文本\033[0m"
echo -e "\033[44m蓝色背景文本\033[0m"
# 颜色代码参考:
# 30-37: 前景色 (黑、红、绿、黄、蓝、洋红、青、白)
# 40-47: 背景色
# 1: 高亮 0: 重置
# 输出进度指示器
for i in {1..5}; do
echo -n "."
sleep 1
done
echo " 完成!"
# 在脚本中输出带时间戳的信息
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 开始执行任务"
# 输出分隔线
echo "========================================"
echo " 分隔线"
echo "========================================"
# 输出变量并保存到文件
echo "当前路径: $(pwd)" > info.txt
# 条件输出
if [ condition ]; then
echo "条件满足"
else
echo "条件不满足"
fi
# 输出数组内容
arr=("apple" "banana" "cherry")
echo "数组内容: ${arr[@]}"
# 输出特殊字符
echo "星号: \* 问号: \? 方括号: \[\]"
常用场景
# 在脚本中输出信息
#!/bin/bash
echo "脚本开始执行..."
echo "当前用户: $(whoami)"
echo "当前目录: $(pwd)"
echo "系统时间: $(date)"
# 创建配置文件
echo "# 配置文件" > config.conf
echo "host=localhost" >> config.conf
echo "port=8080" >> config.conf
# 调试脚本时输出变量值
debug_var="some value"
echo "调试: debug_var = $debug_var"
# 生成报告
echo "系统状态报告" > report.txt
echo "生成时间: $(date)" >> report.txt
echo "磁盘使用情况:" >> report.txt
df -h >> report.txt
# 输出进度条(简单版本)
for i in {1..10}; do
sleep 0.5
echo -n "#"
done
echo " 100%"
# 条件判断输出
file_size=$(stat -c%s "myfile.txt")
if [ $file_size -gt 1024 ]; then
echo "文件大于1KB,大小: $file_size 字节"
fi
# 输出环境信息
echo "PATH: $PATH"
echo "HOME: $HOME"
echo "SHELL: $SHELL"
高级用法
# 使用printf替代echo(更精确的格式控制)
printf "%-10s %8s %s\n" "Name" "Age" "City"
printf "%-10s %8d %s\n" "John" 25 "New York"
# 输出到标准错误
echo "错误信息" >&2
# 输出并记录日志
echo "操作完成" | tee -a operation.log
# 使用here document
cat << EOF
这是一个多行文本示例
当前时间: $(date)
主机名: $(hostname)
EOF
# 输出十六进制字符
echo -e "\x48\x65\x6c\x6c\x6f" # 输出 "Hello"
关于我
全平台同名”汪多多是只猫”,专注分享实用技术教程,让你的IT学习之路更轻松!
关注我,每天一个Linux命令,轻松入门Linux系统!