WSL2 で動作しているかどうかを判定する Bash スクリプト

自分はどの環境にでも汎用的に配置できる dotfiles を作ろうとしている。

~/.bash_profile~/.bashrc の中で OS 判定して初期処理を変えたい場合は、ifuname を使って処理してきた。

コレまでは MacOS 用、Linux 用、Windows (GitBash) 用、と3種類に分類して記述してきたが、最近 WSL2 のための調整をしたくなった。

WSL2 Ubuntu は、当然ながら uname で確認すると Linux と判定されるため、ココからさらに WSL であることの判定を入れることにした。

if [ "$(uname)" == 'Darwin' ]; then
  echo 'MacOS'
  
elif [ "$(uname)" == 'Linux' ]; then
  echo 'Linux'
  
  # WSL 用の調整
  if [[ "$(uname -r)" == *microsoft* ]]; then
    echo 'WSL'
  fi
  
else
  echo 'Windows'
  
fi

こんな感じ~。

WSL をメインにして、Windows GitBash・GitSDK を使わない方向にしようと思っているので、また dotfiles を見直していこうかな。