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

在写脚本(如:lnmp)
时,经常需要判断linux操作系统是64bit还是32bit,如果是64bit执行这个命令(ln -s
/usr/local/lib/libmcrypt.la /usr/lib64/libmcrypt.la),如果是32bit则执行另一个命令(ln
-s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la)

判断linux系统是32位还是64位有很多方法,推荐用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。
shell脚本通常做法如下:

if [ `getconf WORD_BIT` = '32' ] && [ `getconf LONG_BIT` = '64' ] ; then
     ln -s /usr/local/lib/libmcrypt.la /usr/lib64/libmcrypt.la
else
     ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
fi

Tue Mar 26 12:51:12 CST 2013


【AD】美国洛杉矶CN2 VPS/香港CN2 VPS/日本CN2 VPS推荐,延迟低、稳定性高、免费备份_搬瓦工vps

【AD】RackNerd 推出的 KVM VPS 特价优惠,在纽约、西雅图、圣何塞和阿什本每年仅需 12.88 美元!