Shell | type echo |
zsh | echo is a shell builtin |
bash | echo is a shell builtin |
dash | echo is a shell builtin |
tcsh | echo is a shell builtin |
echo is a shell builtin |
echo
命令用于输出内容,并换行。
echo [-n | -e | -E] STRING
参数 | 说明 |
---|---|
-n | 不换行 |
-e -E | 对STRING 中包含的\e 、\E 、\033 进行转义 |
注意:这些参数都是bash自己扩展的参数,POSIX
没有定义这些参数。
Shell | 转义字符 | 依据 | 说明 |
---|---|---|---|
POSIX sh | \a | alert | 发出警告声音或可视化界面 |
POSIX sh | \b | backspace | 输出空格 |
POSIX sh | \c |
| |
POSIX sh | \f | form-feed | 换页,等同于换行 |
POSIX sh | \n | newline | 换行 |
POSIX sh | \r | return | 回车 |
POSIX sh | \t | tab | 输出一个tab |
POSIX sh | \v | vertical-tab | 输出一个竖直的tab |
POSIX sh | \\ | backslash | 输出\ |
POSIX sh | \0N \0NN \0NNN | octal number | 输出八进制整数 表示的ASCII码对应的字符 |
bash | \xHH | hexadecimal number | 输出十六进制整数 表示的ASCII码对应的字符 |
bash | \uHHHH | hexadecimal number | 输出十六进制整数 表示的Unicode code point对应的字符 |
bash | \uHHHHHHHH | hexadecimal number | 输出十六进制整数 表示的Unicode code point对应的字符 |
bash | \e \E \033 | escape | 输出ESC 颜色 |
bash | \! | mark | 输出! |
echo "I Love you!"
在设置了set -H的情况下,执行这个命令会报错,原因是Bash认为!
是!historyNumber
命令,他要把!historyNumber
命令展开, 这样就出错了,实际上,你可以认为这是个Bug
,没有仔细校验命令的合法性。最好的解决办法就是使用单引号
,如下:
echo 'I Love you!'
如果只能使用双引号
的话,最好是对!
进行转义,如下:
name=you
echo "I Love ${name}\!"
输出变量的值:
echo "$HOME"
echo $$
echo $-
彩色输出:
echo -e '\033[0;32mI Love you!\033[0;0m'