首頁 >後端開發 >Golang >為什麼當鍵入命令運行程式時,會在程式名稱前面自動插入./?

為什麼當鍵入命令運行程式時,會在程式名稱前面自動插入./?

王林
王林轉載
2024-02-09 19:45:12918瀏覽

為什麼當鍵入命令運行程式時,會在程式名稱前面自動插入./?

在使用命令列執行程式時,你可能會注意到在程式名稱前面自動插入了"./"這兩個字元。這是因為在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中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除