Maison >développement back-end >Golang >Comment fournir plusieurs champs de saisie aux commandes externes dans Go ?

Comment fournir plusieurs champs de saisie aux commandes externes dans Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-30 04:16:02914parcourir

How to Provide Multiple Input Fields to External Commands in Go?

Go - Écriture sur Stdin pour des commandes externes avec plusieurs champs de saisie

Lors de l'exécution de commandes externes à partir d'un programme Go, il peut être nécessaire de fournir une entrée à l'entrée standard de la commande (stdin). Cependant, lorsque la commande externe nécessite plusieurs champs de saisie, il peut être difficile de déterminer comment les fournir de la manière la plus efficace et la plus fiable.

Dans l'exemple fourni, la commande de connexion est exécutée et attend que l'utilisateur pour saisir manuellement deux champs : un nom d'utilisateur et un mot de passe. Pour fournir ces entrées par programme, il est possible d'utiliser un tampon d'octets.

Le type bytes.Buffer dans Go peut être utilisé pour conserver et manipuler une séquence d'octets en mémoire. En écrivant le nom d'utilisateur et le mot de passe dans le tampon, puis en définissant le champ login.Stdin dans le tampon, il est possible de fournir les entrées à la commande sans interaction de l'utilisateur.

Un extrait de code qui illustre cette approche :

<code class="go">import (
    "bytes"
    "fmt"
    "os"
    "os/exec"
)

func main() {
    cmd := "login"

    // Prepare the byte buffer with username and password
    var b bytes.Buffer
    username := "exampleUsername"
    password := "examplePassword"
    b.Write([]byte(fmt.Sprintf("%s\n%s\n", username, password)))

    // Execute the command with stdin set to the buffer
    login := exec.Command(cmd)
    login.Stdin = &b
    login.Stdout = os.Stdout
    login.Stderr = os.Stderr

    err := login.Run()
    if err != nil {
        fmt.Fprintln(os.Stderr, err)
    }
}</code>

En utilisant cette technique, le programme Go peut automatiquement fournir les entrées nécessaires à la commande externe, rationalisant ainsi le processus d'exécution et éliminant le besoin de saisie manuelle de l'utilisateur.

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