Maison >développement back-end >Golang >Comment saisir les informations d'identification de l'utilisateur dans un programme externe via Stdin in Go ?
Saisie des informations d'identification de l'utilisateur dans un programme externe via stdin
Considérez le scénario dans lequel vous souhaitez exécuter une commande externe et fournir les informations d'identification de l'utilisateur à partir d'un Allez programme. La commande demande la saisie du nom d'utilisateur et du mot de passe dans des champs séparés. Déterminer comment remplir séquentiellement ces champs à l'aide de stdin peut être un défi.
Solution : utiliser un bytes.Buffer
Pour résoudre ce problème, utilisez le type bytes.Buffer, ce qui permet la création d'un tampon pour l'écriture et la lecture des données d'octets. Suivez ces étapes :
Exemple de code :
<code class="go">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 err := login.Run() if err != nil { fmt.Fprintln(os.Stderr, err) }</code>
Cette approche profite du fait que stdin lit les caractères jusqu'à rencontrer une nouvelle ligne. En alimentant le tampon vers stdin, la commande lira les informations d'identification séquentiellement sans rencontrer aucune ambiguïté.
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!