Saltar al contenido

¿Cómo detectar el sistema operativo desde un script Bash?

Este equipo redactor ha pasado horas investigando para darle soluciones a tu pregunta, te regalamos la respuestas así que esperamos resultarte de gran ayuda.

Solución:

Creo que lo siguiente debería funcionar. no estoy seguro win32 aunque.

if [[ "$OSTYPE" == "linux-gnu"* ]]; then
        # ...
elif [[ "$OSTYPE" == "darwin"* ]]; then
        # Mac OSX
elif [[ "$OSTYPE" == "cygwin" ]]; then
        # POSIX compatibility layer and Linux environment emulation for Windows
elif [[ "$OSTYPE" == "msys" ]]; then
        # Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
elif [[ "$OSTYPE" == "win32" ]]; then
        # I'm not sure this can happen.
elif [[ "$OSTYPE" == "freebsd"* ]]; then
        # ...
else
        # Unknown.
fi

Para mi .bashrc, uso el siguiente código:

platform='unknown'
unamestr=`uname`
if [[ "$unamestr" == 'Linux' ]]; then
   platform='linux'
elif [[ "$unamestr" == 'FreeBSD' ]]; then
   platform='freebsd'
fi

Luego hago algo como:

if [[ $platform == 'linux' ]]; then
   alias ls='ls --color=auto'
elif [[ $platform == 'freebsd' ]]; then
   alias ls='ls -G'
fi

Es feo, pero funciona. Puedes utilizar case en vez de if si tu prefieres.

La página de manual de bash dice que la variable OSTYPE almacena el nombre del sistema operativo:

OSTYPE Establecido automáticamente en un string que describe el sistema operativo en el que se ejecuta bash. El valor predeterminado depende del sistema.

está configurado para linux-gnu aquí. jio

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *