2017/04/18

查看linux系统是32位还是64位


查看Linux系统是32位还是64位(getconf WORD_BIT误区)

在写脚本时,经常需要判断linux操作系统是64bit还是32bit。

判断linux系统是32位还是64位有很多方法,file /sbin/inituname -agetconf,对于编写脚本来说推荐用getconf会比较简单,然而有人认为getconf WORD_BIT=32则是32bit,getconf WORD_BIT=64则是64bit,请去64bit机器上执行,呵呵。getconf WORD_BIT显示结果还是32,why?

32位的系统中int类型和long类型一般都是4字节,64位的系统中int类型还是4字节的,但是long已变成了8字节。inux系统中可用”getconf WORD_BIT”和”getconf LONG_BIT”获得word和long的位数。64位系统中应该分别得到32和64。

WORD_BIT    字或类型 int 中的位数。
LONG_BIT    类型中的位数,类型为 long int。

shell脚本通常做法如下:

if [ `getconf WORD_BIT` = '32' ] && [ `getconf LONG_BIT` = '64' ] ; then
    Is_64bit='y'
else
    Is_64bit='n'
fi