首頁 > 後端開發 > Golang > 主體

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

王林
發布: 2024-02-09 19:45:12
轉載
855 人瀏覽過

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

在使用命令列執行程式時,你可能會注意到在程式名稱前面自動插入了"./"這兩個字元。這是因為在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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!