Ich versuche ein Skript zu schreiben, das Aktionen basierend auf der Architektur der Maschine ermittelt. Ich verwende bereits uname -m
die Architektur Linie zu sammeln, aber ich weiß nicht , wie viele ARM - Architekturen gibt es, noch weiß ich, ob man armhf
, armel
oder arm64
.
Da dies für dieses Skript erforderlich ist , um zu bestimmen , ob Teile des Skripts ausgeführt werden können oder nicht, ich versuche , einen einfachen Weg zu finden , um zu bestimmen , ob die Architektur ist armhf
, armel
oder arm64
. Gibt es einen einzeiligen oder einfachen Befehl, mit dem entweder , oder ausgegeben werden armhf
kann ?armel
arm64
Das Skript wurde speziell für Debian- und Ubuntu-Systeme geschrieben, und ich bezeichne dies als solches (es wird automatisch beendet, wenn Sie sich nicht in einem dieser Distributionen befinden, aber dies könnte auch auf eine viel breitere Art und Weise angewendet werden, wenn die Befehl (e) vorhanden
BEARBEITEN: Kürzlich erfahren, dass armel tot ist und arm64 Software Builder (PPA oder virtuell) nicht die stabilsten sind. Also habe ich eine Wildcard-Suche, arm*
die armhf findet und annimmt, aber es ist immer noch notwendig, einen Einzeiler zu finden, der einen der drei zurückgibt - ob es sich um einen Ubuntu / Debian-Befehl oder einen Kernel-Aufruf handelt oder so.
i386
, i686
und x86_64
Fälle basierend auf uname -m
, aber nichts für arm??
... oder zumindest nichts, identifizieren armhf
, armel
oder arm64
) .
uname -m
die spezifische Armplatte aus - armv7l
zum Beispiel. Es muss nicht ausdrücklich sagen , ob es armel
, armhf
oder arm64
- das ist , was ich brauche , $(arch)
mit wie um auszusondern unvereinbar OS - Architekturen enden.
case $(arch) in ; armf)... ;; armel)... ;; arm64)... ;; *) exit ;; esac
Machst du so etwas?