我正在编写一个脚本,希望根据发行版执行不同的代码。具体来说,这是一个用于设置新机器的脚本,我想添加 kubuntu backports repo(以及安装 kubuntu-restricted-extras 等一些其他操作),但前提是该机器运行的是 kubuntu
我已经看到了一些执行此操作的方法,但它们似乎不够具体,无法区分不同的基于 ubuntu 的发行版。例如:
lsb_release -a
uname -a
即使我在 kubuntu 上也会显示ubuntuecho $DESKTOP_SESSION
将显示 Plasma,并将env | grep XDG_CURRENT_DESKTOP
显示 KDE,我认为这不会让我区分 kubuntu 和 KDE neon
我发现似乎有效的唯一方法是:
if env | grep -q kubuntu
then
echo "running kubuntu"
fi
但是,这似乎依赖于特定配置目录的存在,我不确定该目录在版本之间是否会保持稳定?有更正确的方法来做到这一点吗?
细节
- 该脚本只能在运行某些 ubuntu 变体的计算机上运行
- 我需要区分的关键分布是乌班图,库本图,KDE霓虹灯, 和流行!_os。我的主要困惑源于这样一个事实:其中 2 个发行版运行 KDE,另外 2 个发行版运行 GNOME,所以我不能简单地检查 DE
- 我很高兴安装软件来获取此信息,但前提是它是该发行版的标准/默认存储库的一部分。例如,
neofetch
这是公平游戏,但我听说有时报告名称不正确