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

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

創(chuàng)建一個(gè)在 Go 中運(yùn)行任意 shell 命令的函數(shù)

創(chuàng)建一個(gè)在 Go 中運(yùn)行任意 shell 命令的函數(shù)

Go
拉風(fēng)的咖菲貓 2021-11-29 16:59:13
我正在嘗試在 go 中創(chuàng)建一個(gè)通用函數(shù),該函數(shù)接受輸入的 shell 命令(帶參數(shù))并執(zhí)行它。請注意,shell 命令可能具有不同數(shù)量的參數(shù)。我知道exec.Command()in Go 將("ls", "-la", "/var")命令 + 參數(shù)的格式作為輸入。下面截?cái)嗟倪@段代碼不起作用:func exe_cmd(commandarray []string) {var shell_command string = ""for i := 0; i < len(commandarray); i++ {                  shell_command = shell_command + " " + commandarray[i]                  }cmd := exec.Command(shell_command)fmt.Println("Command is: ", shell_command)fmt.Printf("==> Executing: %s\n", strings.Join(cmd.Args, " "))out, err := cmd.Output()fmt.Printf("OutVar: %s\n", out)fmt.Printf("ErrVar: %s\n", err)}func dummy() {dummycmd := []string{"ls", "-la", "/var"}exe_cmd(dummycmd)}在的結(jié)束for的shell_command變量將包含"ls -la /var",我有一個(gè)很難弄清楚如何形成它的方式,就是輸入格式要求,即"ls", "-la", "/var"我也嘗試將其設(shè)置dummycmd為變量,"ls -la /var"但我認(rèn)為如果要求以上述格式將其傳遞給 exec.Command 則情況更糟。想法?
查看完整描述

1 回答

?
qq_笑_17

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

您可以簡單地匹配exec.Command函數(shù)的參數(shù)簽名,即


(name string, arg ...string)

并使用可變參數(shù)語法將函數(shù)參數(shù)傳遞給 exec.Command


func execCmd(name string, args ...string) {

    cmd := exec.Command(name, args...)


    fmt.Printf("Command is: %s, %s", name, args)


    out, err := cmd.Output()


    fmt.Printf("OutVar: %s\n", out)

    fmt.Printf("ErrVar: %s\n", err)

}

但是請注意,您沒有在此處調(diào)用 shell,因此依賴任何內(nèi)置的 shell 都會失敗。


查看完整回答
反對 回復(fù) 2021-11-29
  • 1 回答
  • 0 關(guān)注
  • 233 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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