Windows 使いのみなさん、MSYS2 使っていますか?使っていなければ、ぜひ使ってみてください。便利ですよ!
さて、そのMSYS2@Windows を使っていると、シェルスクリプトを Linux でもMSYS2@Windows でも動くようにしておきたい場合があります。いわゆるマルチプラットフォーム対応ですね。組込み開発に限らずですが、開発ツールの都合でLinuxとWindowsを行ったり来たりすることがあるので、マルチプラットフォーム対応にしておくと便利です。
シェルスクリプトにてOSがWindwosかどうか判定する
基本的に 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
他にも方法はありそうですが、これが一番手っ取り早いと思います。
ご参考にしてみてください!
コメント