查看Linux系統是32位仍是64位(getconf WORD_BIT誤區)

在寫腳本(如:lnmp) 時,常常須要判斷linux操做系統是64bit仍是32bit,linux

若是是64bit執行這個命令(ln -s /usr/local/lib/libmcrypt.la /usr/lib64/libmcrypt.la),
若是是32bit則執行另外一個命令(ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la)shell

判斷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腳本一般作法以下:lnmp

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
相關文章
相關標籤/搜索