Sto cercando di scrivere uno script che determinerà le azioni in base all'architettura della macchina. Uso già uname -m
a raccogliere la linea di architettura, ma non so quanti architetture ARM ci sono, né so se uno è armhf
, armel
o arm64
.
Dato che questo è richiesto per questo script per determinare se parti dello script possono essere eseguite o meno, sto cercando di trovare un modo semplice per determinare se l'architettura è armhf
, armel
o arm64
. Esiste un one-liner o semplice comando che può essere utilizzato per l'output sia armhf
, armel
o arm64
?
Lo script è stato scritto appositamente per i sistemi Debian e Ubuntu, e io taggo come tale con questo in mente (si chiude automaticamente se non ci si trova in una di quelle distro, ma questo potrebbe essere applicato in un modo molto più ampio se il comando (i) esiste)
EDIT: Recentemente appreso che armel è morto e che i costruttori di software arm64 (basati su PPA o virtuali) non sono i più stabili. Quindi ho una ricerca jolly per trovare arm*
e assumere armhf, ma è ancora necessario capire un liner che restituisca uno dei tre - che si tratti di un comando Ubuntu / Debian o di una chiamata del kernel o qualcosa del genere.
i386
, i686
e x86_64
casi in base uname -m
, ma nulla per arm??
..., o almeno, nulla che identifica armhf
, armel
o arm64
) .
uname -m
sputa la specifica scheda arm - armv7l
ad esempio. Non dice esplicitamente se è armel
, armhf
o arm64
- che è quello che ho bisogno $(arch)
di finire come al fine di estirpare le architetture OS incompatibili con.
case $(arch) in ; armf)... ;; armel)... ;; arm64)... ;; *) exit ;; esac
mi dici qualcosa del genere?