第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

以編程方式可靠地檢索容器中 go 可執(zhí)行文件的路徑,而無(wú)需使用 Go

以編程方式可靠地檢索容器中 go 可執(zhí)行文件的路徑,而無(wú)需使用 Go

Go
Qyouu 2023-06-12 15:21:08
如何go在沒(méi)有which 編程方式的容器中檢索二進(jìn)制文件的路徑?一種選擇是which go按如下方式執(zhí)行:bytes, err := exec.Command("which", "go").Output()但是,我不想依賴于which可用。go 是否提供任何內(nèi)置機(jī)制來(lái)檢索它,如果沒(méi)有,除了讓用戶自己傳遞路徑之外還有什么選擇?
查看完整描述

2 回答

?
慕后森

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

從手冊(cè)頁(yè)which

這需要一個(gè)或多個(gè)參數(shù)。對(duì)于它的每個(gè)參數(shù),它將在 shell 提示符下輸入該參數(shù)時(shí)將執(zhí)行的可執(zhí)行文件的完整路徑打印到標(biāo)準(zhǔn)輸出。它通過(guò)使用與 bash(1) 相同的算法在環(huán)境變量 PATH 中列出的目錄中搜索可執(zhí)行文件或腳本來(lái)執(zhí)行此操作。

Go 的os/exec.LookPath功能非常接近這個(gè)功能:

LookPath 在 PATH 環(huán)境變量命名的目錄中搜索名為文件的可執(zhí)行文件。如果文件包含斜線,則直接嘗試,不查詢 PATH。結(jié)果可能是絕對(duì)路徑或相對(duì)于當(dāng)前目錄的路徑。

path/filepath.Abs如果您需要有保證的絕對(duì)路徑,請(qǐng)使用。


查看完整回答
反對(duì) 回復(fù) 2023-06-12
?
30秒到達(dá)戰(zhàn)場(chǎng)

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊

我不希望這是最好的答案,但這是我剛剛找到的答案。我希望有更多特定于 go 的類型,但與此同時(shí), linux 中的類型是 bash 和 sh(alpine)中可用的默認(rèn)內(nèi)置類型。

type type您可以通過(guò)運(yùn)行which yields來(lái)自己測(cè)試:

type 是一個(gè)內(nèi)置的 shell

中的用法go如下所示:

b, err := exec.Command("type", "go").Output()


if err != nil {

? ? /* 'type' is not available on the O/S */

}


goPath := strings.TrimPrefix(strings.TrimSuffix(string(b), "\n"), "go is ")

需要這些函數(shù)的原因Trim是因?yàn)檩敵隹雌饋?lái)像這樣:

go 是 /usr/local/go/bin/go\n

這不是最好的方法,但它確實(shí)有效。


查看完整回答
反對(duì) 回復(fù) 2023-06-12
  • 2 回答
  • 0 關(guān)注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)