我正在嘗試在 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 則情況更糟。想法?
創(chuàng)建一個(gè)在 Go 中運(yùn)行任意 shell 命令的函數(shù)
拉風(fēng)的咖菲貓
2021-11-29 16:59:13