「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > exec.commandを使用するときに、GOコードが「出口ステータス1」を返すのはなぜですか?

exec.commandを使用するときに、GOコードが「出口ステータス1」を返すのはなぜですか?

2025-04-08に投稿
ブラウズ:221

Why Does My Go Code Return

デバッグ「exitステータス1」goのexec.command

exit exit 1 "エラーに遭遇したときに、Golangのexec.commandを使用して外部コマンドを実行したときに、excommandを使用して、正確なタスクをパインポイントすることができます。この簡単なガイドは、エラーのトラブルシューティングに関する洞察を提供します。より詳細なエラーメッセージを取得するために、exec.command structのstderrプロパティを利用できます。方法は次のとおりです。 var out bytes.buffer var stderr bytes.buffer cmd.stdout =&out cmd.stderr =&stderr

今、コマンドが実行され、エラーが発生すると、エラーメッセージは一般的な「出口ステータス1」の代わりにstderrバッファーに書き込まれます。 exec.command( "find"、 "/"、 "-maxdepth"、 "1"、 "-exec"、 "wc"、 "-c"、 "{}"、 "\\") var out bytes.buffer var stderr bytes.buffer cmd.stdout =&out cmd.stderr =&stderr err:= cmd.run() err!= nil { fmt.println(fmt.sprint(err) ":" stderr.string()) 戻る } fmt.println( "result:" out.string()) 実行時に、コードには次の詳細なエラーメッセージが表示されます。または ""

追加の考慮事項
cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\\")
var out bytes.Buffer
var stderr bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = &stderr

一部のコマンドは、stderrへのエラーの書き込み慣習を順守しないかもしれないことに注意する価値があります。一部のコマンドはstdoutにエラーを印刷する場合がありますが、他のコマンドはstderrにエラーを印刷する場合がありますが、それでも出口ステータスが成功します(0)。したがって、実行している特定のコマンドに応えるためにコードを調整する必要がある場合があります。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3