echo命令
1.0、参考
1.1、echo命令的类型
Shelltype echo
zshecho is a shell builtin
bashecho is a shell builtin
dashecho is a shell builtin
tcshecho is a shell builtin
echo is a shell builtin
1.2、echo命令的作用

echo命令用于输出内容,并换行。

1.3、echo命令的使用格式
echo [-n | -e | -E] STRING
参数说明
-n不换行
-e
-E
STRING中包含的\e\E\033进行转义

注意:这些参数都是bash自己扩展的参数,POSIX没有定义这些参数。

Shell转义字符依据说明
POSIX sh\aalert发出警告声音或可视化界面
POSIX sh\bbackspace输出空格
POSIX sh\c
POSIX sh\fform-feed换页,等同于换行
POSIX sh\nnewline换行
POSIX sh\rreturn回车
POSIX sh\ttab输出一个tab
POSIX sh\vvertical-tab输出一个竖直的tab
POSIX sh\\backslash输出\
POSIX sh
\0N
\0NN
\0NNN
octal number输出八进制整数表示的ASCII码对应的字符
bash\xHHhexadecimal number输出十六进制整数表示的ASCII码对应的字符
bash\uHHHHhexadecimal number输出十六进制整数表示的Unicode code point对应的字符
bash\uHHHHHHHHhexadecimal number输出十六进制整数表示的Unicode code point对应的字符
bash
\e
\E
\033
escape输出ESC颜色
bash\!mark输出!
1.3.1、示例1
echo "I Love you!"

在设置了set -H的情况下,执行这个命令会报错,原因是Bash认为!!historyNumber命令,他要把!historyNumber命令展开, 这样就出错了,实际上,你可以认为这是个Bug,没有仔细校验命令的合法性。最好的解决办法就是使用单引号,如下:

echo 'I Love you!'

如果只能使用双引号的话,最好是对!进行转义,如下:

name=you
echo "I Love ${name}\!"
1.3.2、示例2

输出变量的值:

echo "$HOME"
echo $$
echo $-
1.3.3、示例3

彩色输出:

echo -e '\033[0;32mI Love you!\033[0;0m'