在wsl中判断wsl的版本是wsl1还是wsl2

该bash脚本用于检测当前系统是否在WSL环境下运行,并进一步判断是WSL1还是WSL2版本。通过读取/proc/version文件内容,使用grep命令搜索特定字符串来确定。同时,根据WSL版本设置主机IP,如果是WSL1则设置为127.0.0.1,如果是WSL2,则从/etc/resolv.conf中提取nameserver的IP地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

判断wsl的版本

代码逻辑

通过判断 cat /proc/version,是否包含wsl等字符来判断wsl的版本。

代码

#!/bin/bash

# Get the content of /proc/version
proc_version=$(cat /proc/version)

# Check if we are running within WSL
if echo $proc_version | grep -qi 'Microsoft'; then
  # Check if it's WSL1 or WSL2
  if echo $proc_version | grep -qi 'WSL2'; then
    version="WSL2"
  else
    version="WSL1"
  fi
else
  version="Linux"
  echo "Not running within WSL."
  exit 1
fi

# Set host_ip based on WSL version
if [ "$version" == "WSL1" ]; then
  host_ip="127.0.0.1"
  #echo "export host_ip=127.0.0.1" >> ~/.bashrc
  #echo "export DISPLAY=$host_ip:0.0" >> ~/.bashrc
else
  host_ip=$(grep nameserver /etc/resolv.conf | cut -f 2 -d " ")
  #echo 'host_ip=$(cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " ")' >> ~/.bashrc #对应于WSL2
  echo "export DISPLAY=$host_ip:0.0" >> ~/.bashrc
fi

echo "WSL version: $version"
echo "host_ip: $host_ip"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值