当前位置: 首页 > 面试题库 >

您如何在Go中获得系统命令的输出?

姬存
2023-03-14
问题内容

假设我要在go程序中运行“ls”,并将结果存储在字符串中。似乎有一些命令可以在exec和os包中派生进程,但是它们需要stdout等文件参数。是否有办法将输出作为字符串?


问题答案:

编辑: 此答案已过时。请在下面查看FatihArslan的答案。

通过指定Pipe作为标准输出(如果需要,还可以使用stderr)来使用exec.Run。它将返回cmd,其中在Stdout(和Stderr)字段中包含os.File。然后,您可以使用ioutil.ReadAll读取它。

例:

package main

import (
    "exec";
    "io/ioutil";
)

func main() {
    if cmd, e := exec.Run("/bin/ls", nil, nil, exec.DevNull, exec.Pipe, exec.MergeWithStdout); e == nil {
        b, _ := ioutil.ReadAll(cmd.Stdout)
        println("output: " + string(b))
    }
}


 类似资料:
  • 我很难找到关于这些命令的功能、返回什么以及如何在C++中的应用程序中获得它们的信息。这是一个练习,这就是我需要如何获得我将从中读取的输入文件和我将向其写入的输出文件: 我试图使用: 谢谢!

  • 我试过了 但它给了我编译时错误 无法从静态上下文引用非静态方法“get(int)”。 我从observable的调用方法调用这个方法。 我还看到了但它已被弃用。

  • 问题内容: 在python中,我可以使用os或subprocess运行一些系统命令。问题是我无法以字符串形式获取输出。例如: 我有一个没有功能check_out的较旧版本的子流程,并且我希望有一个不需要更新该模块的解决方案,因为我的代码将在没有完全管理员权限的服务器上运行。 这个问题似乎微不足道,但我找不到微不足道的解决方案 问题答案: 用途: 执行此操作的较新方法(> python 2.6)是使

  • 本文向大家介绍Go语言执行系统命令行命令的方法,包括了Go语言执行系统命令行命令的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言执行系统命令行命令的方法。分享给大家供大家参考。具体如下: 执行Go代码时可以附加参数,包括要执行的命令和给命令的参数 希望本文所述对大家的Go语言程序设计有所帮助。

  • 问题内容: 我需要一个“系统”函数调用,与Python,Perl,PHP,Ruby和&c相同。当它在Rhino JavaScript引擎上运行时,它将成为名为Narwhal的JavaScript标准库的组件,而Rhino JavaScript引擎又在Java上运行。 问题在于Java的标准库似乎已经抽象出了生成共享父进程的stdio的子进程的能力。这意味着您不能将交互性推迟到子流程中。 我的第一个

  • 问题内容: 我正在尝试制作一个小的Java程序来执行系统命令,但似乎无法弄清楚 问题是如何使用Java执行系统命令? 更新:我阅读了文档并尝试了一些示例,但仍然无法弄清。为什么不能像C中那样简单 问题答案: 您可能需要查看的文档。这里给出一个例子。