可能重复:
How to determine whether a given Linux is 32 bit or 64 bit?
有人知道如何创建一个shell脚本sh文件,如果它是一个64位系统,它可以为一个程序提供shell,如果是一个32位系统,那么它是另一个程序吗? 非常感谢。
答案 0 :(得分:3)
if $(uname -m | grep '64'); then
echo "ARCH: 64-bit"
else
echo "ARCH: 32-bit"
fi
答案 1 :(得分:2)
尝试uname -m
:x86_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