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

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

Linda Hamilton
リリース: 2024-12-17 04:21:25
オリジナル
717 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート