WSL2 で動作しているかどうかを判定する Bash スクリプト
自分はどの環境にでも汎用的に配置できる dotfiles を作ろうとしている。
~/.bash_profile
や ~/.bashrc
の中で OS 判定して初期処理を変えたい場合は、if
と uname
を使って処理してきた。
コレまでは 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 を見直していこうかな。