WSL2

WSL環境か判定する環境変数

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でなければ何も表示されない。
プロフィール

興味のあること、つまづいたこと、考えたことなどを書いています。

カテゴリー

コメント

タイトルとURLをコピーしました