Maison > développement back-end > Golang > le corps du texte

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

Mary-Kate Olsen
Libérer: 2024-10-30 04:16:02
original
825 Les gens l'ont consulté

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!