echo命令是用来将一行文本显示到标准输出。一般情况下,它会在显示结果后自动加上一个换行。例如:
iubuntu@ubuntu:~$ echo example
example
iubuntu@ubuntu:~$
如果你不想自动换行,可以加参数-n,
iubuntu@ubuntu:~$ echo -n example
exampleiubuntu@ubuntu:~$
-E是关闭\的解释,而默认情况就是关闭的。
-e选项是使能\的解释,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
例子:
iubuntu@ubuntu:~$ echo "a\bbcd"
a\bbcd
iubuntu@ubuntu:~$ echo -e "a\bbcd"
bcd
iubuntu@ubuntu:~$ echo -E "a\bbcd"
a\bbcd
iubuntu@ubuntu:~$
a\bbcd
iubuntu@ubuntu:~$ echo -e "a\bbcd"
bcd
iubuntu@ubuntu:~$ echo -E "a\bbcd"
a\bbcd
iubuntu@ubuntu:~$
--help 显示--help然后退出
--version显示 --version然后退出
----------------------------------------------------------------------------------------------------------
特例
----------------------------------------------------------------------------------------------------------
1. 如果要一定要在双引号中显示!,要用\,或在此命令之行使用set +H
iubuntu@ubuntu:~$ echo "hello !"
bash: !": event not found
iubuntu@ubuntu:~$ echo "hello \!"
hello \!
iubuntu@ubuntu:~$
bash: !": event not found
iubuntu@ubuntu:~$ echo "hello \!"
hello \!
iubuntu@ubuntu:~$
2. 在不用引号的情况下,不能在一行的中间使用分号,因为,分号被看成是命令与命令之间的分隔符,在下面的例子echo hello;world被看成两个命令,一个是echo hello,一个是world。所以会报找不到world命令的错。
iubuntu@ubuntu:~$ echo hello;world
hello
No command 'world' found, did you mean:
Command 'tworld' from package 'tworld' (universe)
world: command not found
iubuntu@ubuntu:~$
hello
No command 'world' found, did you mean:
Command 'tworld' from package 'tworld' (universe)
world: command not found
iubuntu@ubuntu:~$