首页 > 后端开发 > Golang > 如何在 Go 中将输入重定向到 `exec.Command()`?

如何在 Go 中将输入重定向到 `exec.Command()`?

Mary-Kate Olsen
发布: 2024-12-07 15:54:13
原创
223 人浏览过

How to Redirect Input to `exec.Command()` in Go?

使用 exec.Command() 通过输入重定向运行命令

在 Go 中,exec.Command() 提供了一种执行外部命令的便捷方法。然而,处理输入重定向可能具有挑战性。本讨论探讨如何使用 exec.Command() 运行命令 /sbin/iptables-restore

最初,尝试使用

设置命令且以下是实现此目的的方法:
package main

import (
    "io"
    "io/ioutil"
    "log"
    "os/exec"
)

func main() {
    bytes, err := ioutil.ReadFile("/etc/iptables.conf")
    if err != nil {
        log.Fatal(err)
    }
    cmd := exec.Command("/sbin/iptables-restore")
    stdin, err := cmd.StdinPipe()
    if err != nil {
        log.Fatal(err)
    }
    err = cmd.Start()
    if err != nil {
        log.Fatal(err)
    }
    _, err = io.WriteString(stdin, string(bytes))
    if err != nil {
        log.Fatal(err)
    }
}
登录后复制

这种方法允许我们读取文件的内容,将其通过管道传输到命令的标准输入,然后使用所需的输入重定向启动命令。

以上是如何在 Go 中将输入重定向到 `exec.Command()`?的详细内容。更多信息请关注PHP中文网其他相关文章!

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