シェルスクリプト内でOSがWindowsか否かを判定する|COMSPEC環境変数

Windows 使いのみなさん、MSYS2 使っていますか?使っていなければ、ぜひ使ってみてください。便利ですよ!

さて、そのMSYS2@Windows を使っていると、シェルスクリプトを Linux でもMSYS2@Windows でも動くようにしておきたい場合があります。いわゆるマルチプラットフォーム対応ですね。組込み開発に限らずですが、開発ツールの都合でLinuxとWindowsを行ったり来たりすることがあるので、マルチプラットフォーム対応にしておくと便利です。

基本的に bash ならどこでも動くと思いますが、Windows かどうかで記述を分岐させたい場合が時々あります。ディレクトリ構成や使える外部ツールが違う時などですね。そういう時は環境変数COMSPECを参照します。

下記のようにCOMSPECを確認することで、Windows かどうかを簡単に判定できます。

#===============================================================================
# Windows か否かを判定.
#===============================================================================
if [ "$COMSPEC" != "" ]; then
    echo "COMSPEC is defined, OS is Windows."
else
    echo "COMSPEC is undefined, OS may be GNU/Linux."
fi

他にも方法はありそうですが、これが一番手っ取り早いと思います。
ご参考にしてみてください!

シェアする

フォローする

スポンサーリンク