How to detect 386, amd64, arm, or arm64 OS architecture via shell/bash How to detect 386, amd64, arm, or arm64 OS architecture via shell/bash shell shell

How to detect 386, amd64, arm, or arm64 OS architecture via shell/bash


uname -m

prints values such as x86_64, i686, arm, or aarch64.


I suggest using:

dpkg --print-architecture


I went with the following:

architecture=""case $(uname -m) in    i386)   architecture="386" ;;    i686)   architecture="386" ;;    x86_64) architecture="amd64" ;;    arm)    dpkg --print-architecture | grep -q "arm64" && architecture="arm64" || architecture="arm" ;;esac