Piuttosto semplice, i soliti posti per capire il sistema operativo in cui ti trovi sembrano identici a quelli di Ubuntu su Ubuntu per Windows. Ad esempio uname -a
è identico a un'installazione GNU/Linux nativa e /etc/os-version
è identico a un'installazione Ubuntu Trusty Tahr.Come verificare se un programma viene eseguito in Bash su Ubuntu su Windows e non solo su Ubuntu?
L'unica cosa che posso pensare è di verificare se esiste il numero /mnt/c/Windows
, ma non sono sicuro che sia un'idea infallibile.
Poiché i procfs viene emulato da Windows, si deve (in linea di principio, come dichiarato sul commento Github) contengono sempre quelle corde Microsoft, indipendentemente dalla distribuzione usata, così l'ultimo paragrafo sembra confuso per me. –
@GuillemJover, a seconda che l'ipotetica altra distribuzione stia utilizzando WSL o meno, immagino. Non so se Cygwin emuli quella funzionalità, ma se lo fa, non immagino che direbbe Microsoft. (Anche se immagino che la frase "Microsoft Windows" possa apparire nella stringa. Scommetto che "[email protected]" non lo farà!) –
@HarryJohnston Sotto Cygwin, '/ proc/version' contiene una stringa che inizia con" CYGWIN_NT " e '/ proc/sys/kernel/osrelease' non esiste affatto. – duskwuff