當我在Linux命令行中輸入字符\或`(反向)時,顯示的子輸入終端是什麼?它顯示了我認爲是包含單個「>」字符的提示。 (見下圖)在Linux中鍵入或`後輸入的子命令行
它幾乎看起來像一個腳本終端(如python的「>>>」)。
我試着問谷歌,但問題是很難解釋。
當我在Linux命令行中輸入字符\或`(反向)時,顯示的子輸入終端是什麼?它顯示了我認爲是包含單個「>」字符的提示。 (見下圖)在Linux中鍵入或`後輸入的子命令行
它幾乎看起來像一個腳本終端(如python的「>>>」)。
我試着問谷歌,但問題是很難解釋。
它只是在等待收尾。
您可以使用這些反引號從命令行獲得輸出並將其分配給一個變量。如果你想做myvar=`ls`
,那麼ls的輸出將被分配給myvar。
同樣,您可以使用myvar=$(ls)
,有人認爲它更現代。
\
的情況有點不同。反斜槓允許轉義下一個字符的含義。當你通常「結束」該行時,該命令被執行,但是當行結尾被轉義時不行。這在編寫shell腳本時可以派上用場,並且您想要在多行中傳播長命令。
由於newline
(按Enter
鍵)沒有關閉它,只是希望您繼續執行上一個命令。
此提示符是PS2(就像您的標準shell提示符是由變量PS1
定義的那樣)。從the POSIX standard:
PS2
- 每次用戶輸入一個<newline>
之前完成在交互式外殼命令行,這個變量的值應經受參數膨脹和寫入標準誤差。默認值是"> "
。本卷的POSIX.1-2008僅針對支持用戶可移植性實用程序選項的系統指定變量的影響。
因此,該被印刷意味着您輸入一個不完整的命令行的一個交互式殼。如果您還有其他類型的報價尚未完成,或者報價沒有結束fi
,您可能會得到同樣的結果。
謝謝。我希望我能爲命令行學習一種新的超級力量:@ – javey
@javey:插入任意換行符不是超級大國? –
「有人建議」?歷史記錄毫無疑問;在Bourne實現了文字反引號支持之後很長一段時間,'$()'語法被引入到POSIX sh中(出於很好的理由:文字反引號很難嵌套,並且引用它們的語法是令人驚訝且難以使用的)。 –