Shell‘//’ 是什麼意思作為回報從
‘//’ 是什麼意思作為回報從 which
我
test
在完整路徑下有一個可執行腳本/home/sawa/foo/bar/test
。該目錄/home/sawa/foo/bar
位於 內$PATH
,並且優先於預設目錄,包括/usr/bin
. 當我做`which test`
看看這個命令是否被正確辨識,它返回
/home/sawa/foo/bar//test
用雙斜線
//
。我知道有一個同名的內置命令test
,當我刪除我的命令時,這個下/usr/bin/test
的命令由 . 返回which
,所以我認為它在某種程度上會造成乾擾。
- 這個雙斜線在這裡是什麼意思,為什麼會出現在這裡?
- 我的執行檔
test
似乎無法正常工作。這是為什麼?
我猜你
/home/sawa/foo/bar/
在你的路徑上 - 即帶有斜杠的路徑。
which
正在遍歷該文件的每個元素$PATH
並附加/argv[1]
並檢查該文件的存在。這會導致雙斜杠 - 一個來自$PATH
part ,一個來自/argv[1]
.雙斜杠沒問題。它被核心折疊成一個斜線。只有在路徑的開頭,雙斜杠才有特殊含義,但並不總是如此。
至於
test
不工作,請確保您在呼叫test
. 您通常使用完整路徑來執行此操作,但您也可以使用 bashenable -n test
來禁用內置test
命令。