Para probar los sistemas Debian, puede verificar si /etc/debian_version
existe:
if [ -f "/etc/debian_version" ]; then
# do stuff
fi
Debería incluirse Debian y los sistemas basados en él (incluido Ubuntu y sus derivados), aunque es posible que algunos no lo tengan, en este caso puede verificar /etc/*release
archivos:
if [ "$(grep -Ei 'debian|buntu|mint' /etc/*release)" ]; then
# do stuff
fi
Donde debian|buntu|mint
hay una lista de nombres de distribuciones para buscar (no distingue entre mayúsculas y minúsculas): puede tener una idea de algunos derivados comunes a partir de aquí , aunque los derivados de Debian como Ubuntu tienen sus propios deriativos .
Para los sistemas basados en RedHat, los derivados utilizan una mayor variedad de archivos y es posible que no tengan instalado lsb-release, por lo que puede aplicar los siguientes métodos:
obtener el nombre de lanzamiento de
lsb_release -i 2> /dev/null | sed 's/:\t/:/' | cut -d ':' -f 2-
Verifique el DISTRIB-ID en el lsb-release
archivo: un 'Método de recuperación que probablemente no sea necesario en los sistemas modernos', también el archivo aparentemente falta en Fedora y no contiene DISTRIB_ID en OpenSUSE
verificar la existencia de alguno de los siguientes
/etc/fedora-release
y / o /etc/redhat-release
para RedHat o Fedora
/etc/SuSE-release
para SuSe
/etc/mandriva-release
para mandriva / mageia
use un método similar al último debian:
if [ "$(grep -Ei 'fedora|redhat' /etc/*release)" ]; then
...
Los primeros 3 puntos los obtuve del cron de actualización de Google Chrome, por lo que podría examinar eso para obtener más información (también determina los administradores de paquetes)
Para una gama más amplia de sistemas operativos, leer esta publicación en SO debería ayudar.
lsb_release -i 2> /dev/null | sed 's/:\t/:/' | cut -d ':' -f 2-
?? Simplemente ejecutelsb_release -si