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」引数を追加すると、 error:
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 の「top」の「exec.Command」に「-o cpu」を追加するとエラーが発生するのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。