确定特定 ARM 体系结构字符串的简单命令行方法?

Tho*_*ard 50 scripting ubuntu debian architecture cpu-architecture

我正在尝试编写一个脚本,该脚本将根据机器的架构确定操作。我已经uname -m习惯收集架构线了,但是我不知道有多少个ARM架构,也不知道一个是armhf, armel, 还是arm64.

由于这是需要这种脚本来确定脚本的部分是否可以运行或不,我试图找到一个简单的方法来确定该架构armhfarmelarm64。是否有可用于输出或者任何单行或简单的命令armhfarmelarm64

该脚本是专门为 Debian 和 Ubuntu 系统编写的,我正在考虑这一点(如果您不在这些发行版之一上,它会自动退出,但是如果命令存在)


编辑:最近了解到 armel 已死,并且 arm64 软件构建器(PPA 或基于虚拟的)并不是最稳定的。所以我有一个通配符搜索查找arm*和假设 armhf,但仍然有必要找出一个返回三个之一的一个 liner - 无论是 Ubuntu/Debian 命令还是内核调用或其他东西。

Ste*_*itt 99

在 Debian 和衍生产品上,

dpkg --print-architecture
Run Code Online (Sandbox Code Playgroud)

将输出运行它的机器的主要架构。这将armhf在运行 32 位 ARM Debian 或 Ubuntu(或衍生版本)arm64的机器上,在运行 64 位 ARM 的机器上。

请注意,运行架构可能与硬件架构甚至内核架构不同。i386在 64 位 Intel 或 AMD CPU 上运行Debian是可能的,我相信armhf在 64 位 ARM CPU 上运行是可能的。甚至可以在内核上拥有大部分i386二进制文件(因此主要架构是i386amd64...