Estou tentando escrever um script que determinará ações com base na arquitetura da máquina. Eu já uso uname -m
para reunir a linha de arquitetura, no entanto eu não sei quantas arquiteturas ARM existem, nem sei se é armhf
, armel
ou arm64
.
Como este é necessário para esse script para determinar se partes do script pode ser executado ou não, eu estou tentando encontrar uma maneira simples para determinar se a arquitetura é armhf
, armel
ou arm64
. Existe alguma one-liner ou comando simples que pode ser usado para a saída tanto armhf
, armel
ou arm64
?
O script foi escrito especificamente para os sistemas Debian e Ubuntu, e eu estou marcando isso com isso em mente (ele sai automaticamente se você não estiver em uma dessas distros, mas isso pode ser aplicado de uma maneira muito mais ampla também, se o comando (s) existe)
EDIT: Recentemente, aprendi que o armel está morto, e os construtores de software arm64 (PPA ou virtual) não são os mais estáveis. Então, eu tenho uma pesquisa curinga encontrando arm*
e assumindo armhf, mas ainda é necessário descobrir um liner que retorne um dos três - seja um comando Ubuntu / Debian ou uma chamada do kernel ou algo assim.
i386
, i686
e x86_64
casos baseados em uname -m
, mas nada para arm??
... ou, pelo menos, nada que identifica armhf
, armel
ou arm64
) .
uname -m
cospe a placa do braço específica - armv7l
por exemplo. Ele não diz explicitamente se é armel
, armhf
ou arm64
- que é o que eu preciso $(arch)
terminar para eliminar arquiteturas incompatíveis de SO.
case $(arch) in ; armf)... ;; armel)... ;; arm64)... ;; *) exit ;; esac
você meen algo assim?