簡體   English   中英

bash或powershell中的>>模式是什么?

[英]What is the >> mode in bash or powershell?

如果在bash或powershell中的命令中輸入了一個` ,它將進入提示符下顯示>>的模式。 此模式是什么?它的作用是什么?

我鍵入cd `而不是cd ~並進入模式。 似乎影響它的唯一輸入是ctrl + c來終止命令。 關於搜索bash手冊頁或參考手冊,我什么也找不到。

在bash / sh中, `字符啟動Command Substitution

當您沒有完成命令(帶有另一個`字符)時,shell會意識到您的命令未完成,並嘗試提示您更多命令(使用$PS2的值)。

完成命令,然后按Enter鍵,整個過程就會運行。

未完成的字符串( ` )也是如此。

在powershell中,我相信`是行的延續。 (類似於shell腳本等中的\\ 。)

根據要求,我將評論移至答案,以解決問題的PowerShell方面。

在PowerShell中,反引號`是轉義字符。 就OP的問題而言,並引起>>提示,反引號`逃避了新行,並強制命令解釋器將當前命令繼續到下一行。 因此,當行中的最后一個字符是`時,它的作用就像Etan建議的那樣作為行繼續符。 當他在反引號之后立即按Enter時,它給出>>期望他完成他正在處理的當前命令。

如果不是最后一個字符,則它會轉義其后面的所有字符,從而使人們能夠轉義引號內的引號,或在雙引號內聲明狀態變量名稱而無需字符串內插。

如其他答案所述, >>提示符是主機等待您完成某些操作的主機。 它可以是命令,字符串,腳本塊或循環等。

(感謝Etan間接向我展示`事情是如何完成的,在這里回答問題真是太棒了)

編輯:B ,基思·希爾(Keith Hill)走進來,幫助我將腳伸進嘴里。 我堅持我的回答,因為我認為它在功能上是正確的(如果在技術上不夠徹底),但是顯然,它在文檔中被稱為line continuation

反引號( ` )開始引用上下文,並將繼續閱讀直到以另一個匹配的`結尾。 當當前行的引號未完成時(例如,按Enter鍵時),將進入/繼續此模式。

'"引用上下文不同,它還希望內部( '" )引號在終止“ >>”上下文之前正確終止。 (實際上,進入此模式並不重要,只是shell表示在交互運行時表達式未正確終止。)

考慮以下終止輸入(它運行時不同步,捕獲輸出,然后顯示回顯):

echo "Hello " `
uname -m` ", you are awesome!"

這個非終止的(因為內部的"未關閉”)輸入:

echo `
echo "Hello world
`

並使用標准(非替代引號):

echo "Hello
word `"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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