複数の引数を使用したコマンドの実行
Go でコマンドを実行するときは、引数がコマンドに渡される方法に注意することが重要です。ユーザーが最近遭遇した問題は、特定の引数を指定してコマンド「top」を実行すると、コンソールからは機能するが、exec パッケージを使用すると失敗するというものでした。
問題
ユーザーのコードは、「top -n 10 -l 2」の実行には成功しましたが、「top -o cpu -n 10 -l 2」の実行には失敗しました。 exec パッケージによって提供されるエラー メッセージは、「-o cpu」引数が無効であることを示していました。
解決策
問題は、引数を渡す方法にあります。コマンド。コンソール上のコマンド ライン インタープリタは自動的に引数を分離し、コマンドが引数を正しく解析できるようにします。ただし、exec パッケージを使用する場合は、引数を明示的に分離する必要があります。
この特定のケースでは、正しいコードは次のようになります。
cmd := exec.Command(app, "-o", "cpu", "-n", "10", "-l", "2")
引数を分離することで、exec パッケージはそれらを期待どおりコマンドに渡して、エラーを解決します。
以上がコンソールで同じコマンドが機能するのに、複数の引数を指定すると Go `exec.Command` が失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。