Heim > Backend-Entwicklung > Golang > Wie stelle ich in Go mehrere Eingabefelder für externe Befehle bereit?

Wie stelle ich in Go mehrere Eingabefelder für externe Befehle bereit?

Mary-Kate Olsen
Freigeben: 2024-10-30 04:16:02
Original
914 Leute haben es durchsucht

How to Provide Multiple Input Fields to External Commands in Go?

Go – Schreiben in Stdin für externe Befehle mit mehreren Eingabefeldern

Beim Ausführen externer Befehle aus einem Go-Programm kann es erforderlich sein, dies zu tun Geben Sie Eingaben für die Standardeingabe des Befehls (stdin) ein. Wenn der externe Befehl jedoch mehrere Eingabefelder erfordert, kann es schwierig sein, zu bestimmen, wie diese am effizientesten und zuverlässigsten bereitgestellt werden können.

Im bereitgestellten Beispiel wird der Anmeldebefehl ausgeführt und vom Benutzer erwartet um zwei Felder manuell einzugeben: einen Benutzernamen und ein Passwort. Um diese Eingaben programmgesteuert bereitzustellen, ist es möglich, einen Bytepuffer zu verwenden.

Der Typ bytes.Buffer in Go kann verwendet werden, um eine Folge von Bytes im Speicher zu halten und zu manipulieren. Indem Sie den Benutzernamen und das Passwort in den Puffer schreiben und dann das Feld login.Stdin auf den Puffer setzen, ist es möglich, die Eingaben für den Befehl ohne Benutzerinteraktion bereitzustellen.

Ein Codeausschnitt, der diesen Ansatz veranschaulicht:

<code class="go">import (
    "bytes"
    "fmt"
    "os"
    "os/exec"
)

func main() {
    cmd := "login"

    // Prepare the byte buffer with username and password
    var b bytes.Buffer
    username := "exampleUsername"
    password := "examplePassword"
    b.Write([]byte(fmt.Sprintf("%s\n%s\n", username, password)))

    // Execute the command with stdin set to the buffer
    login := exec.Command(cmd)
    login.Stdin = &b
    login.Stdout = os.Stdout
    login.Stderr = os.Stderr

    err := login.Run()
    if err != nil {
        fmt.Fprintln(os.Stderr, err)
    }
}</code>
Nach dem Login kopieren

Durch die Verwendung dieser Technik kann das Go-Programm automatisch die notwendigen Eingaben für den externen Befehl bereitstellen, wodurch der Ausführungsprozess rationalisiert wird und manuelle Benutzereingaben überflüssig werden.

Das obige ist der detaillierte Inhalt vonWie stelle ich in Go mehrere Eingabefelder für externe Befehle bereit?. 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