[英]what is var=${var:-word} bash equivalent in 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.