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

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-07 15:54:13231浏览

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn