问题描述
非常简单,通常用来确定您所使用的操作系统的地方似乎与适用于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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!