Heim > Backend-Entwicklung > Golang > Wie automatisiere ich Benutzereingaben für externe Befehle in Go?

Wie automatisiere ich Benutzereingaben für externe Befehle in Go?

DDD
Freigeben: 2024-10-29 17:48:02
Original
928 Leute haben es durchsucht

 How to Automate User Input for External Commands in Go?

Verarbeitung von Benutzereingaben für externe Befehle in Go

Bei der Ausführung externer Befehle, die Benutzereingaben erfordern, kann es schwierig sein, diesen Prozess effektiv zu automatisieren. Stellen Sie sich das folgende Szenario vor, in dem ein externer Befehl auf Eingaben für Benutzername und Passwort wartet.

Mehrere Felder mit Benutzereingaben füllen

Der Kern dieses Problems liegt in der Bereitstellung von Eingaben für mehrere Felder in der stdin des Befehls. Ein Ansatz besteht darin, einen Byte-Puffer zu verwenden:

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

Hier wird ein Byte-Puffer b erstellt und mit den rohen Eingabewerten für Benutzername und Passwort, getrennt durch Zeilenumbrüche, gefüllt. Das Stdin-Feld des Login-Befehls wird dann mit dem Puffer verknüpft. Dadurch wird sichergestellt, dass der externe Befehl bei der Ausführung Eingaben aus dem vorab gefüllten Puffer liest.

Arbeiten mit dem Eingabepuffer

Der Eingabepuffer kann mehrere Zeilen verarbeiten, indem er die Daten nacheinander speichert. Wenn der Befehl Eingaben liest, durchläuft er den Puffer Zeichen für Zeichen und behandelt dabei Zeilenumbrüche als Feldtrennzeichen. Dies ermöglicht die automatisierte Eingabe mehrerer Eingaben in die Standardeingabe des Befehls.

Fazit

Indem Sie einen Bytepuffer verwenden und ihn als Standardeingabe für den externen Befehl festlegen, können Sie effizient mehrere Werte eingeben innerhalb Ihres Programms, wodurch die Notwendigkeit einer manuellen Eingabe oder einer komplexen Handhabung von Eingabeströmen entfällt. Diese Methode bietet eine bequeme Möglichkeit, die Eingabe für externe Befehle zu automatisieren, Ihre Codebasis zu vereinfachen und den Programmablauf zu verbessern.

Das obige ist der detaillierte Inhalt vonWie automatisiere ich Benutzereingaben für externe Befehle in Go?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage