2016-12-26 53 views

回答

2

shell變量逐字擴展,所以您應該使用帶引號的選項。假設您的$ HOME變量等於/Users/rocket spacer。在這種情況下,運行rm -rf /Users/rocket spacerrm -rf "/Users/rocket spacer"之間的區別。第一個嘗試刪除當前目錄中的兩件事:/Users/rocketspacer。第二個選項會做你想做的,並刪除目錄/Users/rocket spacer。一般來說,當展開一個表示路徑的shell變量時,你應該用引號將它包裝起來,這樣你就不必擔心任何被誤解的可能性。

+0

此外,我看到另一種報價,'報價,而不是單引號'。在這個答案中可以看到http://unix.stackexchange.com/a/84980。我什麼時候使用它? – rocketspacer

+1

這就是所謂的反引號,它裏面的所有內容都會被評估,然後代入你的bash命令。例如,如果你想打印出「我的名字是」和當前用戶的名字,你可以運行echo「我是'whoami'」 –

+0

不幸的是,在我上面的評論中,反引起了「whoami」格式化爲代碼,但我的意思是運行:echo「我(反向)whoami(反向)」 –