Para testar sistemas Debian, você pode verificar se /etc/debian_version
existe:
if [ -f "/etc/debian_version" ];
#do stuff
fi
Deve ser incluído o Debian e sistemas baseados nele (incluindo o Ubuntu e seus derivados), embora alguns possam não tê-lo - neste caso, você pode verificar /etc/*release
files:
if [ "$(grep -Ei 'debian|buntu|mint' /etc/*release)" ]; then
#do stuff
fi
Onde debian|buntu|mint
é uma lista de nomes de distros a procurar (sem diferenciação de maiúsculas e minúsculas) - você pode ter uma idéia de alguns dos derivados comuns de aqui , embora derivados do Debian como o Ubuntu tenham seus próprios deriatives .
Para sistemas baseados em RedHat, as derivadas usam um intervalo maior de arquivos e podem não ter o lsb-release instalado - portanto, você pode aplicar os seguintes métodos:
- obtenha o nome do lançamento de
lsb_release -i 2> /dev/null | sed 's/:\t/:/' | cut -d ':' -f 2-
-
Verifique o DISTRIB-ID no arquivo lsb-release
- um 'método de retorno que é provavelmente desnecessário em sistemas modernos', também o arquivo aparentemente está faltando no Fedora e não contém DISTRIB_ID no OpenSUSE
-
verifique a existência de alguns dos seguintes itens
-
/etc/fedora-release
e / ou /etc/redhat-release
para RedHat ou Fedora
-
/etc/SuSE-release
para SuSEe
-
/etc/mandriva-release
para mandriva / mageia
-
use o método similar ao último debian:
if [ "$(grep -Ei 'fedora|redhat' /etc/*release)" ]; then
...
Os primeiros 3 pontos que eu obtive do cron de atualização do Google Chrome, para que você possa examinar isso também descubra mais (ele também determina os gerenciadores de pacotes)
Para uma gama mais ampla de sistemas operacionais, a leitura desta postagem no SO deve ajudar.