• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Wir haben den Frühjahrsputz beendet, Ihr auch? Welches Foto zu dem Thema hat Euch dann am Besten gefallen? Hier geht es lang zur Abstimmung --> 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?
 

DubiDuh

Zwiebelapfel
Registriert
20.05.08
Beiträge
1.288
vllt sowas?

Code:
if sw_vers | grep "Mac" > null
 

commune10

Adams Apfel
Registriert
11.08.11
Beiträge
522
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:

commune10

Adams Apfel
Registriert
11.08.11
Beiträge
522
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.
 

redrat

Grahams Jubiläumsapfel
Registriert
20.01.09
Beiträge
104
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...]
 

commune10

Adams Apfel
Registriert
11.08.11
Beiträge
522
"/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
-----
 

ImperatoR

Roter Astrachan
Registriert
02.12.06
Beiträge
6.261
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. :)
 

commune10

Adams Apfel
Registriert
11.08.11
Beiträge
522
Das mit Python würde schon gehen, aber wie gesagt, das Problem ist dank Rastafari ja schon gelöst.