本文介绍了如何检查程序是否在Windows的Ubuntu上的Bash中运行,而不仅仅是普通的Ubuntu?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

非常简单,通常用来确定您所使用的操作系统的地方似乎与适用于Windows的Ubuntu上的普通Ubuntu相同.例如,uname -a等同于本地GNU/Linux安装,而/etc/os-version等同于Ubuntu Trusty Tahr安装.

Pretty straightforward, the usual places to figure out the OS you're on seem to be identical to plain Ubuntu on Ubuntu for Windows. For example uname -a is identical to a native GNU/Linux install and /etc/os-version is identical to a Ubuntu Trusty Tahr install.

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

The only thing I can think of is to check if /mnt/c/Windows exists, but I'm not sure if that's a foolproof idea.

推荐答案

以下内容可在Windows 10,macOS和Linux上的bash中使用:

The following works in bash on Windows 10, macOS, and Linux:

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

您需要根据这同时检查"Microsoft"和"WSL" WSL开发人员Ben Hillis发表的评论:

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

grep的大小写将被忽略.在WSL2中,/proc/version提供小写的Microsoft.

And case shall be ignored for grep. In WSL2, /proc/version gives lowercased microsoft.

这篇关于如何检查程序是否在Windows的Ubuntu上的Bash中运行,而不仅仅是普通的Ubuntu?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 09:11