{"msg":"操作成功","code":200,"data":{"createBy":"admin","createTime":"2024-06-22 09:43:12","updateBy":"admin","updateTime":"2024-06-22 09:43:12","remark":null,"id":81,"articleTitle":"每天一个Linux命令（五）echo","articleUrl":"linux_echo","articleThumbnail":"https://www.asumimoe.com/imgfiles/20250301/b95d839fa195428cb42fc7f104f50b0d.png","articleFlag":"0","draftStatus":"1","reprintStatement":"0","articleSummary":"echo是 Linux/Unix 系统中用于输出文本的命令，支持显示变量、格式化输出、重定向到文件等功能。它是 Shell 脚本中常用的基础命令之一。","articleContent":"`echo` 是 Linux/Unix 系统中用于**输出文本**的命令，支持显示变量、格式化输出、重定向到文件等功能。它是 Shell 脚本中常用的基础命令之一。\n\n---\n\n## 语法\n\n```bash\necho [选项] [字符串/变量...]\n```\n\n---\n\n## 常用选项\n\n| 选项 | 说明                         |\n| ---- | ---------------------------- |\n| `-n` | 不输出末尾的换行符           |\n| `-e` | 启用转义字符解析             |\n| `-E` | 禁用转义字符解析（默认行为） |\n\n---\n\n## 转义字符表（需 `-e` 选项）\n\n| 转义字符 | 说明          |\n| -------- | ------------- |\n| `\\n`     | 换行          |\n| `\\t`     | 制表符（Tab） |\n| `\\\\`     | 反斜杠        |\n| `\\\"`     | 双引号        |\n| `\\a`     | 响铃（Alert） |\n\n---\n\n## 使用示例\n\n### 1. 输出简单文本\n\n```bash\necho \"Hello, World!\"\n```\n\n输出：\n\n```bash\nHello, World!\n```\n\n---\n\n### 2. 输出变量值\n\n```bash\nname=\"Alice\"\necho \"Hello, $name!\"\n```\n\n输出：\n\n```bash\nHello, Alice!\n```\n\n---\n\n### 3. 不换行输出\n\n```bash\necho -n \"Loading...\"\necho \" Done!\"\n```\n\n输出：\n\n```bash\nLoading...Done!\n```\n\n---\n\n### 4. 使用转义字符\n\n```bash\necho -e \"Line 1\\nLine 2\\tTabbed\"\n```\n\n输出：\n\n```bash\nLine 1\nLine 2   Tabbed\n```\n\n---\n\n### 5. 输出到文件\n\n```bash\necho \"Log entry\" > log.txt\n```\n\n验证：\n\n```bash\ncat log.txt  # 输出 Log entry\n```\n\n---\n\n### 6. 追加到文件\n\n```bash\necho \"New entry\" >> log.txt\n```\n\n验证：\n\n```bash\ncat log.txt  # 输出 Log entry\\nNew entry\n```\n\n---\n\n### 7. 输出特殊字符\n\n```bash\necho \"This is a \\\"quote\\\" and a backslash: \\\\\"\n```\n\n输出：\n\n```bash\nThis is a \"quote\" and a backslash: \\\n```\n\n---\n\n### 8. 输出命令结果\n\n```bash\necho \"Today is $(date)\"\n```\n\n输出：\n\n```bash\nToday is Wed Jan 10 15:30:45 UTC 2024\n```\n\n---\n\n## 注意事项\n\n1. **引号规则**：\n   - 双引号：解析变量和转义字符\n   - 单引号：原样输出内容\n   - 无引号：去除多余空格，解析变量\n2. **变量扩展**：在双引号内使用 `$VAR` 或 `${VAR}` 解析变量\n3. **重定向符号**：\n   - `>` 覆盖文件内容\n   - `>>` 追加到文件末尾\n\n---\n\n## 常见错误处理\n\n### 错误示例：未转义特殊字符\n\n```bash\necho \"Price: $100\"\n```\n\n输出：\n\n```bash\nPrice: 00  # $1 被解析为变量\n```\n\n修正：\n\n```bash\necho \"Price: \\$100\"\n```\n\n---\n\n## 进阶技巧\n\n### 1. 输出彩色文本\n\n```bash\necho -e \"\\e[31mRed Text\\e[0m\"\n```\n\n说明：\n\n- `\\e[31m` 设置红色\n- `\\e[0m` 重置颜色\n\n---\n\n### 2. 输出多行文本（Here Document）\n\n```bash\necho <<EOF\nLine 1\nLine 2\nEOF\n```\n\n输出：\n\n```bash\nLine 1\nLine 2\n```\n\n---\n\n### 3. 结合 `printf` 格式化输出\n\n```bash\nprintf \"Name: %s\\nAge: %d\\n\" \"Alice\" 30\n```\n\n输出：\n\n```\nName: Alice\nAge: 30\n```\n\n---\n\n### 4. 输出数组内容\n\n```bash\nfruits=(\"Apple\" \"Banana\" \"Cherry\")\necho \"${fruits[@]}\"\n```\n\n输出：\n\n```\nApple Banana Cherry\n```\n\n---\n\n### 5. 输出带进度条的动态文本\n\n```bash\nfor i in {1..10}; do\n  echo -ne \"Progress: [$i/10]\\r\"\n  sleep 0.5\ndone\necho\n```\n\n效果：动态更新进度条","categoryId":1,"viewCount":67,"categoryName":"Linux","author":"球接子","authorAvatar":null,"tagIds":[10],"tagNames":["Linux基础"]}}