Go言語でOSを判別する方法
Go言語でどうしてもOS依存の処理をしなければならないケースがあると思います。
もしかして、そんなものは言語内でカバーされているとしたら僕の知識不足なのですが、例えばコマンドを投げる時とか。
そんなときにプログラム内でどのOS上で実行されているかを知り、OSに応じて処理を変えなければなりません。
[ad#top-1]
まず、runtimeパッケージをインポートする必要があります。※fmtパッケージは直接関係ないですが、コンソール出力を使うので…。
import ( "fmt" "runtime" )
runtimeパッケージは、以下のようにアーキテクチャとOS名を取得することができます。
fmt.Println(runtime.GOARCH, runtime.GOOS) //amd64 windows
なので、その機能を使って以下のようにOSを判別させればいいわけですね。
if runtime.GOOS == "windows" { fmt.Println("Windows") }else if runtime.GOOS == "linux"{ fmt.Println("linux") }
とりあえず手持ちのWindowsマシンとLinuxマシンでは判別できることは確認できました。Macはどのような名前で現れるのかは確認できていませんが、「mac」かな?
[ad#ad-1]
スポンサーリンク