Heim > Backend-Entwicklung > Golang > Wie gebe ich Benutzeranmeldeinformationen über Stdin in Go in ein externes Programm ein?

Wie gebe ich Benutzeranmeldeinformationen über Stdin in Go in ein externes Programm ein?

Patricia Arquette
Freigeben: 2024-11-02 01:28:30
Original
936 Leute haben es durchsucht

How to Input User Credentials into an External Program via Stdin in Go?

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:

  1. Erstellen Sie einen bytes.Buffer und schreiben Sie den Benutzernamen und das Passwort, getrennt durch Zeilenumbrüche.
  2. Weisen Sie den Puffer dem Stdin-Feld des Befehls zu.
  3. Führen Sie den Befehl wie gewohnt aus und leiten Sie stdout und stderr an Ihr Programm weiter.

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage