簡體   English   中英

神秘的輸出 <cmd> 后跟\\或`

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM