Befehlszeilenargumente mit Go verwenden
Dieser Go-Code ruft mithilfe des Befehls „top“ mit bestimmten Argumenten erfolgreich Details von 10 Prozessen ab:
package main import ( "os/exec" ) func main() { print(top()) } func top() string { app := "/usr/bin/top" cmd := exec.Command(app, "-n", "10", "-l", "2") out, err := cmd.CombinedOutput() if err != nil { return err.Error() + " " + string(out) } value := string(out) return value }
Ein zusätzliches „-o cpu“-Argument führt jedoch zu einem Fehler:
cmd := exec.Command(app, "-o", "cpu", "-n", "10", "-l", "2")
In der Konsole funktioniert der Befehl „top -o cpu -n 10 -l 2“ wie vorgesehen. Das Problem liegt in der Art und Weise, wie das „-o“-Argument an den „top“-Befehl übergeben wird.
Um dieses Problem zu beheben, ist es notwendig, die Argumente explizit zu trennen, wie folgt:
cmd := exec.Command(app, "-o", "cpu", "-n", "10", "-l", "2")
Dadurch wird sichergestellt, dass die Argumente korrekt an den Befehl übergeben werden, sodass dieser ordnungsgemäß ausgeführt werden kann.
Das obige ist der detaillierte Inhalt vonWarum verursacht das Hinzufügen von „-o cpu' zu My Go „exec.Command' für „top' einen Fehler und wie kann ich ihn beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!