Maison > développement back-end > Golang > Comment automatiser la saisie utilisateur pour les commandes externes dans Go ?

Comment automatiser la saisie utilisateur pour les commandes externes dans Go ?

DDD
Libérer: 2024-10-29 17:48:02
original
938 Les gens l'ont consulté

 How to Automate User Input for External Commands in Go?

Gestion des entrées utilisateur pour les commandes externes dans Go

Lors de l'exécution de commandes externes nécessitant une entrée utilisateur, il peut être difficile d'automatiser efficacement ce processus. Considérez le scénario suivant dans lequel une commande externe attend les entrées du nom d'utilisateur et du mot de passe.

Remplir plusieurs champs avec la saisie de l'utilisateur

Le nœud de ce problème réside dans la fourniture d'entrées dans plusieurs champs dans le stdin de la commande. Une approche consiste à utiliser un tampon d'octets :

login := exec.Command(cmd, "login")

var b bytes.Buffer
b.Write([]byte(username + "\n" + pwd + "\n"))

login.Stdout = os.Stdout
login.Stdin = &b
login.Stderr = os.Stderr
Copier après la connexion

Ici, un tampon d'octets b est créé et rempli avec les valeurs d'entrée brutes pour le nom d'utilisateur et le mot de passe, séparées par des caractères de nouvelle ligne. Le champ Stdin de la commande login est alors lié au buffer. Cela garantit que la commande externe lit les entrées du tampon pré-rempli lors de l'exécution.

Travailler avec le tampon d'entrée

Le tampon d'entrée peut gérer plusieurs lignes en stockant les données de manière séquentielle. Lorsque la commande lit l'entrée, elle parcourt le tampon caractère par caractère, traitant les caractères de nouvelle ligne comme des séparateurs de champ. Cela permet l'entrée automatisée de plusieurs entrées dans le stdin de la commande.

Conclusion

En utilisant un tampon d'octets et en le définissant comme Stdin pour la commande externe, vous pouvez saisir efficacement plusieurs valeurs de au sein de votre programme, éliminant ainsi le besoin de saisie manuelle ou de gestion complexe des flux d’entrée. Cette méthode constitue un moyen pratique d'automatiser la saisie de commandes externes, en simplifiant votre base de code et en améliorant le déroulement du programme.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal