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 によって内容が異なるような場合にコレで判定できるだろう。