我正在編寫一個腳本,我希望根據發行版執行不同的程式碼。具體來說,這是一個用於設定新機器的腳本,我想添加 kubuntu 向後移植儲存庫(以及其他一些東西,例如安裝 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霓虹燈, 和流行!。我的主要困惑源於這樣一個事實:其中 2 個發行版運行 KDE,另外 2 個發行版運行 GNOME,所以我不能簡單地檢查 DE
- 我很高興安裝軟體來獲取此信息,但前提是它是該發行版的標準/預設存儲庫的一部分。例如,
neofetch
這是公平遊戲,但我聽說有時報告名稱不正確