ホームページ >バックエンド開発 >Golang >Go の「top」の「exec.Command」に「-o cpu」を追加するとエラーが発生するのはなぜですか?どうすれば修正できますか?

Go の「top」の「exec.Command」に「-o cpu」を追加するとエラーが発生するのはなぜですか?どうすれば修正できますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-17 04:21:25724ブラウズ

Why Does Adding

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。