Para testar sistemas Debian, você pode verificar se /etc/debian_version
existe:
if [ -f "/etc/debian_version" ]; then
# do stuff
fi
Deve ser incluído o Debian e sistemas baseados nele (incluindo o Ubuntu e seus derivados), embora alguns não o possuam - neste caso, você pode verificar os /etc/*release
arquivos:
if [ "$(grep -Ei 'debian|buntu|mint' /etc/*release)" ]; then
# do stuff
fi
Onde debian|buntu|mint
está uma lista de nomes de distribuições para procurar (sem distinção entre maiúsculas e minúsculas) - você pode ter uma idéia de alguns derivados comuns a partir daqui , embora os derivados do Debian como o Ubuntu tenham seus próprios derivados .
Para sistemas baseados em RedHat, os derivados usam uma variedade maior de arquivos e podem não ter o lsb-release instalado - para que você possa aplicar os seguintes métodos:
obtenha o nome do release
lsb_release -i 2> /dev/null | sed 's/:\t/:/' | cut -d ':' -f 2-
Verifique o ID do DISTRIB no lsb-release
arquivo - um 'método de fallback que provavelmente não é necessário nos sistemas modernos', também o arquivo aparentemente está ausente no Fedora e não contém DISTRIB_ID no OpenSUSE
verifique a existência de algumas das seguintes
/etc/fedora-release
e / ou /etc/redhat-release
para RedHat ou Fedora
/etc/SuSE-release
para SuSe
/etc/mandriva-release
para mandriva / mageia
use um método semelhante ao último debian:
if [ "$(grep -Ei 'fedora|redhat' /etc/*release)" ]; then
...
Os três primeiros pontos que obtive da atualização cron do Google Chrome, para que você possa examinar isso para descobrir 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.
lsb_release -i 2> /dev/null | sed 's/:\t/:/' | cut -d ':' -f 2-
?? Basta executarlsb_release -si