動的コマンド実行のための可変個引数の利用
システム コマンドの引数の数が不明な状況では、分割を使用します。可変個引数を使用した -and-assemble アプローチは、洗練されたソリューションを提供します。
提供されたコードでは、複数の引数を指定して複雑なコマンドを実行しようとすると、「実行可能ファイルが見つかりません」などのエラーが発生します。これは、コードが引数を個別に指定せずに単一単語のコマンドを想定しているためです。
この制限を克服するには、次の解決策を検討してください。
func exeCmd(cmd string, wg *sync.WaitGroup) { fmt.Println("command is ", cmd) // Split command into head (e.g., 'g++') and parts (remaining arguments) parts := strings.Fields(cmd) head := parts[0] parts = parts[1:] out, err := exec.Command(head, parts...).Output() if err != nil { fmt.Printf("%s", err) } fmt.Printf("%s", out) wg.Done() }
この更新されたコードは Go の可変個引数機能を使用しています。 3 つのドット「...」で示されます。その仕組みは次のとおりです:
このソリューションは、可変引数を採用することにより、さまざまな数の引数を使用してシステム コマンドを実行する際の柔軟性を提供し、特に次のような場合に役立ちます。コマンドが動的に生成される状況
以上がGo で動的システム コマンドを実行する際の「実行可能ファイルが見つかりません」エラーを可変引数で解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。