Maison >développement back-end >Golang >Comment rediriger l'entrée vers « exec.Command() » dans Go ?

Comment rediriger l'entrée vers « exec.Command() » dans Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-07 15:54:13372parcourir

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

Exécuter des commandes avec redirection d'entrée à l'aide de exec.Command()

Dans Go, exec.Command() offre un moyen pratique d'exécuter des commandes externes. Cependant, la gestion de la redirection des entrées peut être difficile. Cette discussion explore comment utiliser exec.Command() pour exécuter la commande /sbin/iptables-restore

Initialement, tente de configurer la commande avec

Voici comment y parvenir :

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)
    }
}

Cette approche nous permet de lire le contenu du fichier, de le diriger vers le stdin de la commande, puis de démarrer la commande avec la redirection d'entrée souhaitée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn