在 Go 中使用命令行参数
此 Go 代码使用带有特定参数的“top”命令成功检索 10 个进程的详细信息:
package main import ( "os/exec" ) func main() { print(top()) } func top() string { app := "/usr/bin/top" cmd := exec.Command(app, "-n", "10", "-l", "2") out, err := cmd.CombinedOutput() if err != nil { return err.Error() + " " + string(out) } value := string(out) return value }
但是,额外的“-o cpu”参数会导致错误:
cmd := exec.Command(app, "-o", "cpu", "-n", "10", "-l", "2")
在控制台中,命令“top -o cpu -n 10 -l 2”按预期工作。问题在于“-o”参数传递给“top”命令的方式。
要解决此问题,需要显式分隔参数,如:
cmd := exec.Command(app, "-o", "cpu", "-n", "10", "-l", "2")
这可确保参数正确传递给命令,使其能够正确执行。
以上是为什么在我的 Go `exec.Command` 中为 `top` 添加'-o cpu”会导致错误,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!