Sto cercando di scrivere uno script che determinerà le azioni in base all'architettura della macchina. Uso già uname -ma raccogliere la linea di architettura, ma non so quanti architetture ARM ci sono, né so se uno è armhf, armelo 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, armelo arm64. Esiste un one-liner o semplice comando che può essere utilizzato per l'output sia armhf, armelo 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, i686e x86_64casi in base uname -m, ma nulla per arm??..., o almeno, nulla che identifica armhf, armelo arm64) .
uname -msputa la specifica scheda arm - armv7lad esempio. Non dice esplicitamente se è armel, armhfo 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 ;; esacmi dici qualcosa del genere?