bashshellmacos-big-surapple-siliconapple-m1

Detect Apple Silicon from command line


How can I detect from a shell script that it is running on M1 Apple hardware?

I want to be able to run a command-line command so that I can write an if-statement whose body will only be executed when run on a mac with an M1 processor (and at least macOS Big Sur, naturally).


Solution

  • uname -m
    

    will return arm64 as opposed to x86_64

    if [[ $(uname -m) == 'arm64' ]]; then
      echo M1
    fi
    

    or, as @chepner suggested

    uname -p
    

    will return arm as opposed to i386

    if [[ $(uname -p) == 'arm' ]]; then
      echo M1
    fi
    

    yet another tool is arch:

    if [[ $(arch) == 'arm64' ]]; then
      echo M1
    fi