So finden Sie Linux-Distribution, die Namen mit einem shell-Skript aus?
Schreibe ich ein shell-script, in dem ich muss der aktuelle name des Betriebssystems, um es generisch. Wie:
if [ $Operating_System == "CentOS" ]
then
echo "CentOS";
# Do this
elif [ $Operating_System == "Ubuntu" ]
then
echo "Ubuntu";
# Do that
else
echo "Unsupported Operating System";
fi
Wie wird es möglich sein? Die Anwendung regulärer Ausdrücke lsb_release -a
Befehl oder etwas anderes?
Dank..
- Yup -
lsb-release
ist definitiv die robuste, generische Art und Weise, es zu tun. BEISPIEL:lsb_release -d|awk '{print $2}'
. - oder
lsb_release -ds
- lsb_release scheint nicht auf CENTOS7 aus der box.
InformationsquelleAutor Pratik Patil | 2015-04-11
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
lsb_release -is
lsb_release
nicht vorhanden ist, auf centos 7.Können Sie die info von
lsb_release
:i
steht für Vertriebspartner-id.s
steht für short.Für ex. Es zeigt
Ubuntu
stattDistributor Id: Ubuntu
Gibt es andere Optionen:
Diese Informationen erhalten Sie durch ausführen
lsb_release --help
oderman lsb_release
versuchen, diese:
awk
obwohl alsawk -F'=' '/^ID=/ {print tolower($2)}' /etc/*-release
einfach gut tut, auch denen, die wollen, um zu erkennen Distributionen, die auf Debian basiertawk -F'=' '/^ID_LIKE=/ {print tolower($2)}' /etc/*-release 2>/dev/null
ist noch näher zu perfekt für meinen Anwendungsfall.Für fast alle linux-Distributionen,
cat /etc/issue
wird den trick tun.Edit: Natürlich keine Lösung anwenden können, um allen Distributionen als Distributionen sind frei zu tun, als Sie bitte.
Weiteren Klarstellung: Dies ist nicht garantiert, um zu arbeiten - nichts ist - aber in meiner Erfahrung ist dies die Methode, die am häufigsten arbeitet. Eigentlich ist es nur Methode, die konsequent arbeitet (
lsb_release
, was hier schon gesagt wurde, erzeugt oftcommand not found
).cat /etc/*ease
werden, da Siefedora-release
odersomething-release
Datei in/etc
.Hier ist, was ich bekomme:
Ich würde verwenden
uname -a