使用脚本按照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的值,所以很方便。