J'essaie d'écrire un script qui déterminera les actions en fonction de l'architecture de la machine. J'utilise déjà uname -m
pour recueillir la ligne d'architecture, mais je ne sais pas combien d'architectures ARM , il y a, et je ne sais si l' on est armhf
, armel
ou arm64
.
Comme cela est nécessaire pour que ce script détermine si des parties du script peuvent être exécutées ou non, j'essaie de trouver un moyen simple de déterminer si l'architecture est armhf
, armel
ou arm64
. Y at - il une doublure ou une commande simple qui peut être utilisé pour la production soit armhf
, armel
ou arm64
?
Le script est spécifiquement écrit pour les systèmes Debian et Ubuntu, et je marque comme tel en gardant cela à l'esprit (il se ferme automatiquement si vous n'êtes pas sur l'une de ces distributions, mais cela pourrait également être appliqué de manière beaucoup plus large si le commande (s) existent)
EDIT: récemment appris que armel est mort, et les constructeurs de logiciels arm64 (PPA ou virtuels) ne sont pas les plus stables. J'ai donc une recherche générique qui trouve arm*
et suppose armhf, mais il est toujours nécessaire de trouver une ligne qui renvoie l'un des trois - que ce soit une commande Ubuntu / Debian ou un appel au noyau ou quelque chose.
i386
, i686
et les x86_64
cas sur la base uname -m
, mais rien pour arm??
... ou du moins, rien qui identifie armhf
, armel
ou arm64
) .
uname -m
crache la carte de bras spécifique - armv7l
par exemple. Il ne dit pas explicitement que ce soit armel
, armhf
ou arm64
- ce qui est ce que je dois $(arch)
finir comme pour éliminer les architectures incompatibles avec OS.
case $(arch) in ; armf)... ;; armel)... ;; arm64)... ;; *) exit ;; esac
vous meen quelque chose comme ça?