2016-08-09 6 views
15

"WindowsのUbuntu"とネイティブのUbuntuのどちらで実行されているかをbashスクリプトで検出できますか?もしそうなら、どうですか?"WindowsのUbuntuを検出する"とbashスクリプトのネイティブUbuntuを比較する

私は両方のマシンでenvを実行しましたが、明らかな環境変数の違いはありませんでした。私は/mnt/cディレクトリの存在をテストすることができましたが、そのディレクトリがネイティブのUbuntuにも潜在的に存在する可能性があるので、それは絶対確実ではありません。

+0

:ODEは、スクリプトが実行されているのUbuntuのバージョンを検出するために、私のために働いていますか? –

+0

WindowsのUbuntuから 'uname -a'出力:' Linuxコンピュータ3.4.0+#1 PREEMPT 2011年8月1日17:06:05 CST 2013 x86_64 x86_64 x86_64 GNU/Linux' – Tim

答えて

21

これは、Windows上のUbuntuで/proc/versionのように見えるが含まれています

Linux version 3.4.0-Microsoft ([email protected]) (gcc version 4.7 (GCC)) #1 SMP PREEMPT Wed Dec 31 14:42:53 PST 2014

とUbuntuの私のバージョンがあります:

Linux version 4.4.0-31-generic ([email protected]) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2.1)) #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016

このC 「は、una​​me -a」レポートを何

if grep -q Microsoft /proc/version; then 
    echo "Ubuntu on Windows" 
else 
    echo "native Linux" 
fi 
+3

[公式ソースから](https://'/ proc/version'または '/ proc/sys/kernel/osrelease'を検索して文字列' 'Microsoft''や '' WSL ''を検索します。/github/Microsoft/BashOnWindows/issues/423#issuecomment-221627364これを行う最善の方法です。 – Tim

関連する問題