gpt4 book ai didi

linux - 如何检查程序是否在 Windows 上的 Ubuntu 上的 Bash 中运行,而不仅仅是普通的 Ubuntu?

转载 作者:IT王子 更新时间:2023-10-29 00:14:11 27 4
gpt4 key购买 nike

非常简单,确定您所使用的操作系统的通常位置似乎与 Ubuntu for Windows 上的普通 Ubuntu 相同。例如,uname -a 与本地 GNU/Linux 安装相同,/etc/os-version 与 Ubuntu Trusty Tahr 安装相同。

我唯一能想到的就是检查 /mnt/c/Windows 是否存在,但我不确定这是否是一个万无一失的想法。

最佳答案

以下适用于 Windows 10、macOS 和 Linux 上的 bash:

#!/bin/bash
set -e
if grep -qEi "(Microsoft|WSL)" /proc/version &> /dev/null ; then
echo "Windows 10 Bash"
else
echo "Anything else"
fi

您需要根据 this comment 检查“Microsoft”和“WSL”作者:WSL 开发人员 Ben Hillis:

For the time being this is probably the best way to do it. I can'tpromise that we'll never change the content of these ProcFs files, butI think it's unlikely we'll change it to something that doesn'tcontain "Microsoft" or "WSL".

/proc/sys/kernel/osrelease
/proc/version

对于 grep 应该忽略大小写。在 WSL2 中,/proc/version 给出小写的 microsoft。

关于linux - 如何检查程序是否在 Windows 上的 Ubuntu 上的 Bash 中运行,而不仅仅是普通的 Ubuntu?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38086185/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com