在使用命令列執行程式時,你可能會注意到在程式名稱前面自動插入了"./"這兩個字元。這是因為在Unix和Linux系統中,"./"表示目前目錄。當你鍵入命令運行程式時,系統會先在目前目錄中尋找該程式的可執行檔。如果不加上"./",系統會認為你要執行的是系統自帶的指令或環境變數PATH所指定的路徑中的程式。所以,為了確保運行的是目前目錄中的程序,我們需要在程序名稱前加上"./"。這是一個系統的預設行為,確保了命令列的安全性和一致性。
例如,
package main import ( "fmt" "net/http" ) func hello(res http.ResponseWriter, req *http.Request) { fmt.Fprint(res, "Hello, my name is Inigo Montoya") } func main() { http.HandleFunc("/", hello) http.ListenAndServe("localhost:4000", nil) }
當輸入指令時,為什麼不將 inigo
,自動轉換為 ./inigo
?
你需要
./inigo
因為 .
不在、也不應該在您的 path
中。 .
只是指當前目錄。
假設您正在使用 bash
,如問題標籤所示,這種替代方案
$pwd/inigo
也可以與 inigo
的任何其他相對或絕對路徑一樣運作。
或者,您可以將$pwd
新增到您的path
,這樣做的優點是不需要您鍵入上述任何內容,而不會產生添加.
的安全隱憂。
假設您位於包含 inigo
的目錄中,那麼
path+=:$pwd
然後只需輸入
inigo
從任何地方。
以上是為什麼當鍵入命令運行程式時,會在程式名稱前面自動插入./?的詳細內容。更多資訊請關注PHP中文網其他相關文章!