Nem todos os sistemas têm /etc/*release*
arquivos, por isso, se você realmente quiser que isso seja entre Unix, você não pode usá-los.
A solução abençoada com POSIX é uname
- Se tudo o que você precisa é de um grosseiro ID do SO uname -s
provavelmente será suficiente.
Não tenho conhecimento de nenhuma lista canônica de saída uname, mas a Wikipedia tem uma tabela que pode ser um bom ponto de partida ( e presumivelmente você tem acesso às plataformas que você está tentando detectar para que você possa verificar o que elas retornam).
Às vezes, uname
não conta a história toda (por exemplo, distribuições Linux, que têm uma variabilidade substancial) - Se é necessário, você pode descobrir informações mais específicas (como " Qual distribuição Linux?" ) com uma segunda passagem que usa uma ferramenta específica do sistema (como lsb_release
no Linux ou oslevel
no AIX)