<cmd>的神秘输出,后跟\或`</cmd>

时间:2010-09-18 09:40:38

标签: linux shell

有时当我在bash中键入命令时,我错误地在末尾输入\字符,因为它接近Enter键。 每当我这样做时,我会在下一行得到提示,如下所示:

>_

使用`字符时产生相同的输出。

这对命令究竟做了什么?

是否有其他字符(除了\和`)提供类似的输出?

3 个答案:

答案 0 :(得分:4)

\字符允许您将命令分成多行:

$ grep "hello" /tmp/file

相当于:

$ grep "hello" \
> /tmp/file

'"字符允许您定义多行字符串,而`是一种使用命令输出作为另一个字符串的参数的方法。 $(command)做同样的事情。

无论何时看到

>

这意味着命令语法不完整。一些shell结构也需要终止,如果是,如果......

可以使用PS2环境变量配置显示的>

根据要求,以下是使用`的示例: 假设我有filelist.txt的文件列表:

$ cat filelist.txt
a.c
a.h
Makefile
test.cfg
[...]

我想知道每个文件中的行数。命令为wc -l a.c a.h Makefile [...]。要使用cat filelist.txt的输出作为wc -l的参数,我可以使用:

$ wc -l `
> cat filelist.txt
> `

答案 1 :(得分:1)

可能是因为您忘记关闭`'

答案 2 :(得分:1)

\是行继续符。当在一行的末尾时,下一行被认为是当前行的延续。

`是一个反击。反引号成对出现,而bash允许在几乎任何引号/括号中包含换行符。您会看到与"'以及(){}类似的(续行)行为。