--- title: "13-echo命令" created: 2025-11-25 tags: - 项目 aliases: - echo命令 --- # echo命令 echo用于输出字符串。 命令格式: ```bash echo STRING ``` ## 显示普通字符串 ```bash echo "Hello AC Terminal" echo Hello AC Terminal # 引号可以省略 ``` ## 显示转义字符 ```bash echo "\"Hello AC Terminal\"" # 注意只能使用双引号,如果使用单引号,则不转义 echo \"Hello AC Terminal\" # 也可以省略双引号 ``` ## 显示变量 ```bash name=yxc echo "My name is $name" # 输出 My name is yxc ``` ## 显示换行 ```bash echo -e "Hi\n" # -e 开启转义 echo "acwing" ``` 输出结果: ```text Hi acwing ``` > [!tip] `-e` 支持的常用转义字符 > > | 转义符 | 含义 | > | --- | --- | > | `\n` | 换行 | > | `\t` | 制表符(Tab) | > | `\\` | 反斜杠本身 | > | `\c` | 抑制后面的输出换行(见下节) | > | `\a` | 响铃 | > | `\0nnn` | 八进制 ASCII 字符 | > > 注意:**不加 `-e` 时这些转义符会被原样输出**,即 `echo "Hi\n"` 输出的就是字面量 `Hi\n`。 ## 显示不换行 ```bash echo -e "Hi \c" # -e 开启转义 \c 不换行 echo "acwing" ``` 输出结果: ```text Hi acwing ``` ## 显示结果定向至文件 ```bash echo "Hello World" > output.txt # 将内容以覆盖的方式输出到output.txt中 ``` ## 原样输出字符串,不进行转义或取变量(用单引号) ```bash name=acwing echo '$name\"' ``` 输出结果 ```text $name\" ``` ## 显示命令的执行结果 ```bash echo `date` ``` 输出结果: ```text Wed Sep 1 11:45:33 CST 2021 ``` ## echo 与 printf 的选用 echo 胜在简单,但有两个先天缺陷:一是**不同 shell/系统对参数的解释不一致**(如 `echo -n`、`echo -e` 在某些实现下行为有差异,POSIX 也不保证),二是没有格式化能力(无法控制宽度、小数位)。对输出格式有要求(对齐、补零、精度)或在意可移植性时,用下一节的 printf;临时打印信息用 echo 即可。 --- **项目分区导航**:[[12-read命令|read命令]] ⬅️ | 13-echo命令 | ➡️ [[14-printf命令|printf命令]]