gpt4 book ai didi

go - 通过 exec.Command 在控制台中工作

转载 作者:IT王子 更新时间:2023-10-29 02:24:14 24 4
gpt4 key购买 nike

请帮忙。我必须通过一定数量的参数传递控制台突击队。有很多。

也就是说,理想情况下,应该是这样的:test.go --distr例如:test.go --distr mc curl cron

我创建函数

 func chroot_create() {
cmd := exec.Command("urpmi",
"--urpmi-root",
*fldir,
"--no-verify-rpm",
"--nolock",
"--auto",
"--ignoresize",
"--no-suggests",
"basesystem-minimal",
"rpm-build",
"sudo",
"urpmi",
"curl")
if err := cmd.Run(); err != nil {
log.Println(err)
}
}

并通过flag.Parse()捕获参数distr

我该如何摆脱 “rpm-构建”, “须藤”, “乌尔米”, “ curl ”)那不会被绑定(bind)到计数数据包。请原谅我的愚蠢,我才刚刚开始学习golang。尤其是当出现问题时。

完整代码 http://pastebin.com/yeuKy8Cc

最佳答案

您正在寻找 ... 运算符。

func lsElements(elems ...string) {
cmd := exec.Command("ls", append([]string{"-l", "-h", "/root"}, elems...)...)
if err := cmd.Run(); err != nil {
log.Println(err)
}
}

您收到作为函数参数的 ...string,它实际上是一个 []string,除了当您调用该函数时,您单独传递字符串。

为了使用它(并且它适用于任何 slice ),您可以将 slice “转换”为带有 ... 后缀的元素列表。

在 exec 的情况下,如果只有这个,您可以直接使用 elem...。但是,如果您也有固定参数,您需要使用 append 构建 slice 并使用 ...

将其扩展回来

示例:http://play.golang.org/p/180roQGL4a

关于go - 通过 exec.Command 在控制台中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26850404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com