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


コメント