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

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

一次性在一個(gè)目錄下構(gòu)建多個(gè) go 插件

一次性在一個(gè)目錄下構(gòu)建多個(gè) go 插件

Go
狐的傳說(shuō) 2023-06-19 17:20:17
我在子目錄下有一個(gè)插件列表。我想用一個(gè)命令構(gòu)建所有這些。有一個(gè)示例目錄布局。plugins/cat/cat.goplugins/dog/dog.goplugins/cow/cow.go我現(xiàn)在像這樣構(gòu)建它們:go build -i -buildmode=plugin -o build/cat.so plugins/cat/cat.gogo build -i -buildmode=plugin -o build/dog.so plugins/dog/dog.gogo build -i -buildmode=plugin -o build/cow.so plugins/cow/cow.go還有另一個(gè)命令(因?yàn)樗?Makefile 中),它幫助我更接近:# Ex.: make bin-so TARGET=catbin-so: builddir    go build -i -buildmode=plugin -o build/$(TARGET).so plugins/$(TARGET)/$(TARGET).go我想創(chuàng)建一行來(lái)構(gòu)建這些插件。我發(fā)現(xiàn)了如何列出文件夾名稱,但我必須在上面的命令中以某種方式使用它。find ./plugins -mindepth 1 -maxdepth 1 -type d | awk 'sub(/^.*\//, "")'所以它會(huì)列出文件夾的名稱,這些對(duì)我來(lái)說(shuō)很好,但我必須將它重定向到插件構(gòu)建器命令。我想要類似的東西(只是一個(gè)例子):find ./plugins -mindepth 1 -maxdepth 1 -type d | awk 'sub(/^.*\//, "")' | go build -i -buildmode=plugin -o build/$1).so plugins/$1/$1.go
查看完整描述

1 回答

?
ABOUTYOU

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

find您可以使用一個(gè)選項(xiàng)在一個(gè)命令中執(zhí)行此操作,-execdir該選項(xiàng)允許您直接在文件的基本名稱上運(yùn)行命令


find ./plugins -mindepth 1 -maxdepth 1 -type d -execdir bash -c '

? ? for arg; do

? ? ? ? name="${arg##*./}"

? ? ? ? go build -i -buildmode=plugin -o build/"${name}".so plugins/"${name}"/"${name}".go

? ? done' _ {} +

find這比在獲得相同結(jié)果后使用多個(gè)管道要好得多。將 中的部分想象成sh -c '..'一個(gè)單獨(dú)的腳本,并且您將參數(shù)傳遞給帶有返回名稱./cow.go等的腳本。


此處的優(yōu)點(diǎn)-execdir是您無(wú)需擔(dān)心目錄名稱之前的直接路徑。您將獲得找到的目錄的最終基本名稱。

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

添加回答

舉報(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)