Bash スクリプトの中で OS 判定する
Bash スクリプトの中で OS を判定する方法。
以下のように uname
を確認すれば判定できる。
if [ "$(uname)" == "Darwin" ]; then
echo Mac
elif [ "$(expr substr $(uname -s) 1 5)" == "MINGW" ]; then
echo Windows
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
echo Linux
else
echo Unknown OS
fi
各 if
文の中に1つ以上処理がないとエラーになってしまった。コメントだけだとダメみたい。なのでとりあえず判定した OS 名を echo
しておくことにした。
.bash_profile
や .bashrc
を様々な環境で利用したいが、OS によって内容が異なるような場合にコレで判定できるだろう。
- 参考 : bash - How to check if running in Cygwin, Mac or Linux? - Stack Overflow … Windows 32bit と 64bit の区別も可能。