Go で終了コードを取得する方法
オペレーティング システムでコマンドを実行するために os/exec パッケージを利用する場合、問題が発生することがよくあります終了コードを取得しています。標準出力をキャプチャすることで出力を読み取ることは可能ですが、終了コードを取得することは依然として課題です。
解決策:
終了コードが 0 かどうかの判断これは、正常に終了した場合に nil を返す cmd.Wait() によって実現できます。ただし、終了コードがゼロ以外の場合、終了コードの取得はより複雑になる可能性があります。これは、終了コード取得のプラットフォーム依存の性質によるものです。
Linux のプラットフォーム固有のアプローチ:
終了コードを取得するためのクロスプラットフォーム アプローチはありませんが、コードの場合、Linux システムでは次のスニペットを使用できます:
import "syscall" if err := cmd.Start(); err != nil { log.Fatalf("cmd.Start: %v", err) } if err := cmd.Wait(); err != nil { if exiterr, ok := err.(*exec.ExitError); ok { log.Printf("Exit Status: %d", exiterr.ExitCode()) } else { log.Fatalf("cmd.Wait: %v", err) } }
このメソッドにより、取得が可能になります。 Linux システムに固有の終了コードの説明。ただし、このアプローチは普遍的に適用できるわけではないことに注意することが重要です。
追加リソース:
Go での終了コード処理に関する詳細情報は、パッケージドキュメント:
[os/exec - プロセス]管理](https://golang.org/pkg/os/exec/)
以上がGo で外部コマンドの終了コードを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。