用于检测系统是32位还是64位的Shell脚本

时间:2012-09-03 16:00:15

标签: linux shell

  

可能重复:
  How to determine whether a given Linux is 32 bit or 64 bit?

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

4 个答案:

答案 0 :(得分:3)

if $(uname -m | grep '64'); then
  echo "ARCH: 64-bit"
else
  echo "ARCH: 32-bit"
fi

答案 1 :(得分:2)

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

答案 2 :(得分:1)

(回应thkala的评论。)

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

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

答案 3 :(得分:0)

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

cat /proc/cpuinfo | grep lm