从命令行或脚本确定 Mac 的架构?

Bri*_*tow 32 command-line shell-script powerpc macos

我正在写一个shell脚本,我需要知道架构,即PPC或Intel。过去,有一个程序 /bin/arch 告诉过你,但我的 Mac 似乎没有它。

有没有一种简单的方法可以做到这一点?在日志文件中查找某些内容?调用其他一些将其作为副作用吐出的程序?

很高兴知道我正在运行的操作系统版本,但这可能没有必要。

chu*_*rnd 40

有很多方法,但试试吧uname -a

  • `uname -p` 只给出了处理器架构。其他选项的`man uname`。 (18认同)
  • @DougHarris 我用`-a`得到x86_64,但用`-p`得到i386 (5认同)

Dou*_*ris 16

arch 可在 /usr/bin/arch

您可以通过以下方式获取操作系统版本信息 sw_vers

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.6.3
BuildVersion:   10D573
$ sw_vers -productVersion
10.6.3
Run Code Online (Sandbox Code Playgroud)


Den*_*son 11

uname -m似乎输出与/bin/arch.

  • 不和我。`arch` 输出 `i368`,`uname -m` 输出 `x84_86`。我在 64 位机器上运行 OSX。 (8认同)

小智 8

您可以使用以下方法sysctl获取有关 CPU 的信息:

$ sysctl machdep.cpu.brand_string
machdep.cpu.brand_string: Apple M1 Pro
Run Code Online (Sandbox Code Playgroud)

现在您可以拿着这个字符串在互联网上搜索以获取有关该 CPU 品牌的详细信息。

如果您想了解有关 CPU 的更多信息,可以使用以下命令:

$ sysctl machdep.cpu
machdep.cpu.cores_per_package: 10
machdep.cpu.core_count: 10
machdep.cpu.logical_per_package: 10
machdep.cpu.thread_count: 10
machdep.cpu.brand_string: Apple M1 Pro
machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTSE64 MON DSCPL VMX EST TM2 SSSE3 CX16 TPR PDCM SSE4.1 SSE4.2 AES SEGLIM64
machdep.cpu.feature_bits: 151121000215084031
machdep.cpu.family: 6
Run Code Online (Sandbox Code Playgroud)

  • 运行可能在 Rosetta 下的客户端上运行的任何类型的 EDR 使得这是唯一有效的答案,因为这会检查底层计算机本身,而不是当前提示,这可能由于 Rosetta 而出现错误。 (2认同)

dee*_*392 5

另一种没有人提到的方法是:

\n
$ machine\narm64e\n
Run Code Online (Sandbox Code Playgroud)\n
MACHINE(1)                                                               General Commands Manual                                                               MACHINE(1)\n\nNAME\n     machine \xe2\x80\x93 print machine type\n\nSYNOPSIS\n     machine\n\nDESCRIPTION\n     The machine command displays the machine type.\n
Run Code Online (Sandbox Code Playgroud)\n