我正在尝试在 go 中创建一个通用函数,该函数接受输入的 shell 命令(带参数)并执行它。
请注意,shell 命令可能具有不同数量的参数。
我知道exec.Command()in Go 将("ls", "-la", "/var")命令 + 参数的格式作为输入。
下面截断的这段代码不起作用:
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)
}
在的结束for的shell_command变量将包含"ls -la /var",我有一个很难弄清楚如何形成它的方式,就是输入格式要求,即"ls", "-la", "/var"
我也尝试将其设置dummycmd为变量,"ls -la /var"但我认为如果要求以上述格式将其传递给 exec.Command 则情况更糟。
想法?
qq_笑_17
相关分类