Una alternativa es usar el /etc/os-release
archivo en su lugar. Esto está formateado como una lista de variables de shell:
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.2 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.2 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
Entonces, una manera fácil de analizarlo es simplemente source
el archivo:
$ . /etc/os-release
$ echo $NAME
Ubuntu
$ echo $VERSION
18.04.2 LTS (Bionic Beaver)
$ echo $PRETTY_NAME
Ubuntu 18.04.2 LTS
$ echo $VERSION_ID
18.04
Para evitar establecer todas estas variables innecesariamente, puede obtener el archivo en una subshell , repetir la variable que necesita y salir de la subshell:
$ ( . /etc/os-release ; echo $VERSION_ID)
18.04
Alternativamente, siempre puede analizar el archivo directamente:
$ grep -oP 'VERSION_ID="\K[\d.]+' /etc/os-release
18.04