Heim >Backend-Entwicklung >Golang >Wie können Variadic-Argumente den Fehler „Ausführbare Datei nicht gefunden' beim Ausführen dynamischer Systembefehle in Go beheben?
Verwendung variadischer Argumente für die dynamische Befehlsausführung
In Situationen, in denen die Anzahl der Argumente für einen Systembefehl unbekannt ist, ist die Verwendung einer Aufteilung sinnvoll -and-assemble-Ansatz mit verschiedenen Argumenten bietet eine elegante Lösung.
Wie im bereitgestellten Code beobachtet, ist der Versuch, komplex auszuführen Bei Befehlen mit mehreren Argumenten würden Fehler wie „ausführbare Datei nicht gefunden“ auftreten. Dies liegt daran, dass der Code von einem Einzelwortbefehl ausging, ohne die Argumente separat anzugeben.
Um diese Einschränkung zu überwinden, ziehen Sie die folgende Lösung in Betracht:
func exeCmd(cmd string, wg *sync.WaitGroup) { fmt.Println("command is ", cmd) // Split command into head (e.g., 'g++') and parts (remaining arguments) parts := strings.Fields(cmd) head := parts[0] parts = parts[1:] out, err := exec.Command(head, parts...).Output() if err != nil { fmt.Printf("%s", err) } fmt.Printf("%s", out) wg.Done() }
Dieser aktualisierte Code verwendet die Variadic-Argument-Funktion von Go. gekennzeichnet durch drei Punkte „...“. So funktioniert es:
Durch die Verwendung verschiedener Argumente bietet diese Lösung Flexibilität bei der Ausführung von Systembefehlen mit einer unterschiedlichen Anzahl von Argumenten, was sie besonders wertvoll macht in Situationen, in denen Befehle dynamisch generiert werden.
Das obige ist der detaillierte Inhalt vonWie können Variadic-Argumente den Fehler „Ausführbare Datei nicht gefunden' beim Ausführen dynamischer Systembefehle in Go beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!