使用脚本按照os-release的值分割发行版

勉強開始

if [[ -f /etc/os-release ]]; then
    source /usr/lib/os-release
    case $ID in
        debian ) echo "Debian";;
        ubuntu ) echo "Ubuntu";;
          arch ) echo "ArchLinux";;
          rhel ) echo "Red Hat Enterprise Linux";;
        centos ) echp "CentOS";;
        fedora ) echo "Fedora";;
      opensuse ) echo "OpenSUSE";;
             * ) echo "Other";;
    esac
else
    echo "/etc/os-release is not exist."
fi

讲解

大多数的Linux发行版都有一个名为/etc/os-release的文件,该文件显示了分发的特定内容。
我们可以通过source命令将其读入,并将其存储在变量ID中,其中包含了分发系的信息。
我们可以使用case语句根据ID的不同进行分类。
通过改变变量ID的值,我们可以进行各种分类。

常见的值

本次我们以Debian为例进行讲解。

PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

漂亮的名字

这是发行版本的特定名称。它是面向普通用户的正式名称,包括版本号和代号等。由于模式太多,在脚本中并不经常使用。

姓名

这是一个发行版的通称。通常不包含版本名称。
在脚本中使用的可能只有ID、ID_LIKE和VERSION_ID之类的吧。

版本号

版本信息。通常情况下,没有代号,只有数字。

版本

这是包括代号和版本信息在内的信息。

身份证

这是发行版的ID。它类似于NAME,但为脚本提供了简化的版本。

类似ID

这个功能在Debian上没有,但在大多数其他发行版上都有。这包括兼容的发行版和原始发行版的标识符。

在Manjaro中,ID_LINE的值等于arch,在Ubuntu中,ID_LIKE的值等于Debian。

主页网址

这是官方发行版的网站。

支持网址

以下是支持页面的网址。也可能包含到论坛等的链接。

错误报告网址

这是指向错误报告页面的网址。也可能是指向论坛等的链接。

我只需要一个选项,即用中文将以下内容进行同义转述:

请参阅这篇新闻文章。

Linux版本的检查方法
因为每个发行版本都写有os-release的值,所以很方便。