Golang で exec.Command を使用するときに、謎の「終了ステータス 1」エラーが発生すると、頭を悩ませることになります。詳細については頭を悩ませます。この記事は、このエラーの原因を解明し、より詳細な診断のための解決策を提供することを目的としています。
次のコードを考えてみましょう:
cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\") var out bytes.Buffer cmd.Stdout = &out err := cmd.Run()
このコードを実行すると、有益ではない「終了ステータス 1」エラーが発生します。 。これを解決するには、Command オブジェクトの Stderr プロパティを利用します。
var stderr bytes.Buffer cmd.Stderr = &stderr
実行すると、エラー メッセージが表示されます:
exit status 1: find: -exec: no terminating ";" or "+"
この詳細なエラーを確認して、
注: 一部のコマンドは、エラー メッセージを stderr ではなく stdout にリダイレクトします。さらに、特定のコマンドはエラー メッセージを stderr に出力しても、依然としてゼロのエラー コードを返す場合があります (コード内で nil エラーが発生することになります)。したがって、使用している特定のコマンドに合わせて、指定されたソリューションを調整する必要がある場合があります。
以上がGo の exec.Command が「終了ステータス 1」を返すのはなぜですか?詳細情報を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。