[英]Mysterious output for <cmd> followed by \ or `
有時,當我在bash中鍵入命令時,我錯誤地在末尾鍵入\\字符,因為它接近Enter鍵。 每當執行此操作時,都會在下一行顯示提示,如下所示:
>_
使用`字符時會產生相同的輸出。
此\\對命令到底有什么作用?
是否還有其他字符(\\和`除外)給出類似的輸出?
\\
字符使您可以將命令分成多行:
$ grep "hello" /tmp/file
等效於:
$ grep "hello" \
> /tmp/file
'
和"
字符允許您定義多行字符串,而`
是一種將命令的輸出用作另一個命令的參數的方式。 $(command)
具有相同的作用。
每當你看到
>
這意味着命令語法不完整。 某些shell構造也需要終止,例如while,for,if ...
可以使用PS2環境變量配置顯示的>
。
根據要求,下面是使用`
的示例:假設我有一個文件列表到filelist.txt
:
$ cat filelist.txt
a.c
a.h
Makefile
test.cfg
[...]
我想知道每個文件中的行數。 該命令將是wc -l ac ah Makefile [...]
。 要使用cat filelist.txt
的輸出作為wc -l的參數,我可以使用:
$ wc -l `
> cat filelist.txt
> `
可能是因為您忘記關閉`或'或“ 。
\\
是換行符。 當在一行的末尾時,下一行被視為當前行的延續。
`
是一個倒鈎。 反引號成對出現,bash允許在幾乎所有引號/括號中包含換行符。 您將看到與"
和'
以及()
和{}
類似的(行連續)行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.