Estoy tratando de escribir un script que determinará las acciones basadas en la arquitectura de la máquina. Ya utilizo uname -m
para recoger la línea de la arquitectura, sin embargo no sé cuántos arquitecturas ARM no son, ni sé si uno es armhf
, armel
o arm64
.
Ya que esto es necesario para esta secuencia de comandos para determinar si las partes de la secuencia de comandos se pueden ejecutar o no, yo estoy tratando de encontrar una forma sencilla de determinar si la arquitectura es armhf
, armel
o arm64
. ¿Hay una sola línea o un comando simple que se puede utilizar para la producción, ya sea armhf
, armel
o arm64
?
El script está específicamente escrito para los sistemas Debian y Ubuntu, y estoy etiquetando como tal con esto en mente (se cierra automáticamente si no está en una de esas distribuciones, pero esto también podría aplicarse de una manera mucho más amplia si el comando (s) existe)
EDITAR: Recientemente aprendí que Armel está muerto y que los creadores de software arm64 (PPA o virtual) no son los más estables. Así que tengo una búsqueda con comodines para encontrar arm*
y asumir armhf, pero aún es necesario descubrir un revestimiento que devuelva uno de los tres, ya sea un comando de Ubuntu / Debian o una llamada del kernel o algo así.
i386
, i686
y x86_64
casos en base a uname -m
, pero nada de arm??
... o, al menos, nada que identifica armhf
, armel
o arm64
) .
uname -m
escupe la placa de brazo específica, armv7l
por ejemplo. No dice explícitamente si se trata de armel
, armhf
o arm64
- que es lo que necesito $(arch)
para terminar como el fin de eliminar a las arquitecturas de sistemas operativos incompatibles con.
case $(arch) in ; armf)... ;; armel)... ;; arm64)... ;; *) exit ;; esac
¿Te refieres a algo como esto?