echo命令

echo用于输出字符串。

命令格式:

echo STRING

显示普通字符串

echo "Hello AC Terminal"
echo Hello AC Terminal  # 引号可以省略

显示转义字符

echo "\"Hello AC Terminal\""  # 注意只能使用双引号,如果使用单引号,则不转义
echo \"Hello AC Terminal\"  # 也可以省略双引号

显示变量

name=yxc
echo "My name is $name"  # 输出 My name is yxc

显示换行

echo -e "Hi\n"  # -e 开启转义
echo "acwing"

输出结果:

Hi

acwing
💡`-e` 支持的常用转义字符
转义符 含义
\n 换行
\t 制表符(Tab)
\\ 反斜杠本身
\c 抑制后面的输出换行(见下节)
\a 响铃
\0nnn 八进制 ASCII 字符

注意:不加 -e 时这些转义符会被原样输出,即 echo "Hi\n" 输出的就是字面量 Hi\n

显示不换行

echo -e "Hi \c" # -e 开启转义 \c 不换行
echo "acwing"

输出结果:

Hi acwing

显示结果定向至文件

echo "Hello World" > output.txt  # 将内容以覆盖的方式输出到output.txt中

原样输出字符串,不进行转义或取变量(用单引号)

name=acwing
echo '$name\"'

输出结果

$name\"

显示命令的执行结果

echo `date`

输出结果:

Wed Sep 1 11:45:33 CST 2021

echo 与 printf 的选用

echo 胜在简单,但有两个先天缺陷:一是不同 shell/系统对参数的解释不一致(如 echo -necho -e 在某些实现下行为有差异,POSIX 也不保证),二是没有格式化能力(无法控制宽度、小数位)。对输出格式有要求(对齐、补零、精度)或在意可移植性时,用下一节的 printf;临时打印信息用 echo 即可。


项目分区导航read命令 ⬅️ | 13-echo命令 | ➡️ printf命令