有时当我在bash中键入命令时,我错误地在末尾输入\字符,因为它接近Enter键。 每当我这样做时,我会在下一行得到提示,如下所示:
>_
使用`字符时产生相同的输出。
这对命令究竟做了什么?
是否有其他字符(除了\和`)提供类似的输出?
答案 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允许在几乎任何引号/括号中包含换行符。您会看到与"
和'
以及()
和{}
类似的(续行)行为。