O POSIX define uname
("nome do Unix") para fornecer informações sobre o funcionamento plataforma de sistema e hardware; executando uname
fornece o nome da implementação do sistema operacional (ou de acordo com a documentação coreutils
, o kernel). Você pode fazer isso interativamente em um terminal ou usar a saída em um script.
Nos sistemas Linux, uname
imprime Linux
.
Nos sistemas Mac OS X, uname
imprime Darwin
. (Estritamente falando, qualquer sistema operacional com um kernel Darwin produzirá isso, mas é muito improvável que você encontre algo diferente do Mac OS X nesse caso.)
Isso permitirá que você determine o que qualquer Mac está executando. Como Rob aponta, se você estiver executando o Mac OS X ( Darwin
conforme indicado por uname
) , então você está executando uma versão certificada do Unix ; se você está rodando Linux, então você não está.
No Mac existem muitas outras possibilidades; seu script pode acabar sendo executado no Solaris ( uname
imprimirá SunOS
), no FreeBSD ( FreeBSD
), no Windows com Cygwin ( CYGWIN
), MSYS ou MSYS2 ( MSYS
), um MinGW ou Shell MinGW-w64 ( MINGW64
, MINGW32
), Interix ( Interix
) e provavelmente outros que eu não conheço.
uname -a
imprimirá todas as informações disponíveis, conforme determinado por uname
, mas será mais difícil de analisar.