1

可能重复:
如何确定给定的 Linux 是 32 位还是 64 位?

有谁知道如何创建一个 shell 脚本 sh 文件,如果它是 64 位系统,它可以 shell 一个程序,如果它是 32 位系统,它可以 shell 另一个程序?非常感谢。

4

4 回答 4

4
if $(uname -m | grep '64'); then
  echo "ARCH: 64-bit"
else
  echo "ARCH: 32-bit"
fi
于 2012-09-03T16:30:33.503 回答
2

试试看uname -mx86_64是64位内核,i686是32位内核。基于此,您可以调用一个程序或另一个程序。

于 2012-09-03T16:02:16.210 回答
1

(回应 thkala 的评论。)

if echo __SIZEOF_POINTER__ | cpp -E - - | grep '^8$' >/dev/null; then
    do_stuff
fi

不太可能在任何地方工作,但如果 cpp 来自 GCC,它就可以工作。具有检测任何 64 位架构的优势,而不仅仅是 x64(POWER、SPARC、IA64 等)。

于 2012-09-03T16:07:49.333 回答
0

如果您想知道处理器是否是 64 位而不是内核,您可以在系统上搜索长模式 (-lm) 标志。它将出现在 64 位上,而不是 32 位上:

cat /proc/cpuinfo | grep lm

于 2012-09-03T20:07:04.677 回答