• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Platform ermitteln

commune10

Adams Apfel
Registriert
11.08.11
Beiträge
522
Ich bin auf der Suche nach einem Stück ShellScript-Code mit dem ich die Plattform auf der das Skript läuft ermitteln kann. Das Skript sollte OS X, Linux und FreeBSD erkennen können.

if [ -f /etc/centos-release ]
if [ -f /etc/redhat-release ]

Die obigen beiden Abfragen funktionieren schon mal für CentOS und Redhat. Gibt es für FreeBSD, andere Linuxe und OS X ähnliches?
 
vllt sowas?

Code:
if sw_vers | grep "Mac" > null
 
Ich glaube nicht, das ein Linux was mit "sw_vers" anfangen kann. Man könnte die Abfragen natürlich geschickt anordnen, aber schön wäre eine solche Lösung nicht.

So, gerade mal auf der openSuSE-Maschine geschaut. Das lässt sich auch einfach abfangen.

if [ -f /etc/SuSE-release ]
 
Zuletzt bearbeitet:
Sehr schön, liefert unter CentOS "Linux" und unter OS X "Darwin". Damit kann ich mir schön was basteln, danke.

Darf dir momentan leider kein Karma geben, ich hoffe ich vergesse es später nicht.
 
Unter Linux ist im Normalfall ein "cat /etc/ISSUE" recht aussagekräftig. "uname" gibt Dir eigentlich nur den aktuell benutzten Kernel zurück. Sollte also unter einem CentOS ein eigener Kernel benutzt werden hilft Dir ein "uname" nicht viel weiter...

[ups, gerade gesehen, dass der Thread schon aus dem Dezember ist... aber vielleicht hilft's ja doch noch weiter...]
 
"/etc/ISSUE" gibt es scheinbar nicht auf jedem Linux, auf meinem CentOS wird der Dateiname klein geschrieben und die Eingabe von "cat /etc/issue" bringt wenig neue Erkenntnisse.
-----
CentOS release 6.4 (Final)
Kernel \r on an \m
-----
 
Du kannst dir ja ein kleines Pythonskript schreiben. Python quasi bei jeder Distribution drauf, oder leicht nachinstallierbar.

Du kannst folgende Pakete verwenden:

http://docs.python.org/2/library/os.html#os.name
http://docs.python.org/2/library/sys.html#sys.platform
http://docs.python.org/2/library/platform.html#platform.platform

Das platform package sieht gut aus, das liefert sehr detaillierte Informationen wie 'Linux-3.3.0-8.fc16.x86_64-x86_64-with-fedora-16-Verne'. Siehe http://stackoverflow.com/questions/110362/how-can-i-find-the-current-os-in-python

Einfach mal in der Python-REPL rumprobieren. :)
 
Das mit Python würde schon gehen, aber wie gesagt, das Problem ist dank Rastafari ja schon gelöst.