WSLと実機のLinuxを併用していたりすると、WSLか否かによって処理を分岐したいことがある。
そこで、WSLかどうか判定する環境変数を自作してみる。
kernel release
uname -r
を実行すると、kernel releaseが表示される。
WSL環境であれば、この実行結果に「WSL」の文字が含まれる。
manの抜粋
-r, –kernel-release print the kernel release
man uname 実行結果 抜粋
WSLかどうか判定
uname -r の結果に「WSL」という文字を含むかどうか判定し、判定結果を環境変数として使いまわせるようにする。
サンプルコード
# 変数IS_WSLを用意し、空でfalse扱いとしたいため、まず空にしておく
IS_WSL=
# uname -r の結果に「WSL」があれば1を代入
uname -r | grep -q -F 'WSL' && IS_WSL=1
# 環境変数にするためにエクスポート
export IS_WSL
# 動作確認
if [ $IS_WSL ]; then
echo wsl
# その他、WSLでのみ実行したい処理を記載
fi
# 実行結果
# WSLならば「wsl」と表示される。WSLでなければ何も表示されない。
コメント