Eingabe von Benutzeranmeldeinformationen in ein externes Programm über stdin
Stellen Sie sich das Szenario vor, in dem Sie einen externen Befehl ausführen und Benutzeranmeldeinformationen aus einem heraus bereitstellen möchten Gehen Sie zum Programm. Der Befehl fordert zur Eingabe von Benutzername und Passwort in separaten Feldern auf. Zu bestimmen, wie diese Felder nacheinander mit stdin gefüllt werden, kann eine Herausforderung sein.
Lösung: Verwendung eines bytes.Buffer
Um dieses Problem zu beheben, verwenden Sie den Typ bytes.Buffer. Dies ermöglicht die Erstellung eines Puffers zum Schreiben und Lesen von Bytedaten. Befolgen Sie diese Schritte:
Beispielcode:
<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>
Dieser Ansatz nutzt die Tatsache aus, dass stdin Zeichen liest, bis sie auf sie stoßen eine neue Zeile. Durch die Zuführung des Puffers zu stdin liest der Befehl die Anmeldeinformationen nacheinander, ohne dass Unklarheiten auftreten.
Das obige ist der detaillierte Inhalt vonWie gebe ich Benutzeranmeldeinformationen über Stdin in Go in ein externes Programm ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!