在Go 中使用命令列參數
此Go 程式碼使用特定參數的「top」指令成功擷取10 個進程的詳細資訊:
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 }
但是,額外的「-o cpu”參數會導致錯誤:
cmd := exec.Command(app, "-o", "cpu", "-n", "10", "-l", "2")
在控制台中,命令“top -o cpu -n 10 -l 2”按預期工作。問題在於“-o”參數傳遞給“top”指令的方式。
要解決此問題,需要明確分隔參數,如:
cmd := exec.Command(app, "-o", "cpu", "-n", "10", "-l", "2")
這可確保參數正確傳遞給命令,使其能夠正確執行。
以上是為什麼在我的 Go `exec.Command` 中為 `top` 添加'-o cpu”會導致錯誤,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!