Ich schreibe ein Skript, in dem ich je nach Distribution unterschiedlichen Code ausführen möchte. Genauer gesagt handelt es sich dabei um ein Skript zum Einrichten neuer Maschinen, und ich möchte das Kubuntu-Backports-Repo hinzufügen (und ein paar andere Dinge wie die Installation von Kubuntu-Restricted-Extras), aber nur, wenn auf dieser Maschine Kubuntu läuft.
Ich habe einige Methoden dafür gesehen, aber sie scheinen nicht spezifisch genug zu sein, um zwischen verschiedenen Ubuntu-basierten Distributionen zu unterscheiden. Zum Beispiel:
lsb_release -a
unduname -a
zeigt Ubuntu an, auch wenn ich Kubuntu verwendeecho $DESKTOP_SESSION
wird Plasma zeigen, undenv | grep XDG_CURRENT_DESKTOP
wird KDE zeigen, was mich, glaube ich, nicht zwischen Kubuntu und KDE Neon unterscheiden lässt
Der einzige Weg, der meiner Meinung nach zu funktionieren scheint, ist:
if env | grep -q kubuntu
then
echo "running kubuntu"
fi
Dies scheint jedoch von der Existenz eines bestimmten Konfigurationsverzeichnisses abhängig zu sein, und ich bin mir nicht sicher, ob es zwischen den Versionen stabil bleibt. Gibt es eine korrektere Möglichkeit, dies zu tun?
Einzelheiten
- Das Skript wird nur auf einem Computer ausgeführt, auf dem eine Ubuntu-Variante läuft.
- Die wichtigsten Verteilungen, zwischen denen ich unterscheiden muss, sindUbuntu,kubuntu,KDE Neon, Undpop!_os. Meine größte Verwirrung rührt daher, dass zwei der Distributionen KDE und zwei GNOME verwenden, sodass ich nicht einfach die DE überprüfen kann.
- Ich installiere gerne Software, um diese Informationen zu erhalten, aber nur, wenn sie Teil der Standard-/Standard-Repos für diese Distribution ist. Zum Beispiel
neofetch
ist es erlaubt, aber ich höre, dass es manchmalmeldet den falschen Namen