首页 > 后端开发 > Golang > 为什么在我的 Go `exec.Command` 中为 `top` 添加'-o cpu”会导致错误,如何修复它?

为什么在我的 Go `exec.Command` 中为 `top` 添加'-o cpu”会导致错误,如何修复它?

Linda Hamilton
发布: 2024-12-17 04:21:25
原创
717 人浏览过

Why Does Adding

在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板