ShellシナリオはLinuxシステムが32ビットか64ビットかを判断するいくつかの方法を共有します。
1行で大丈夫です。32または64を出力します。
「getconf WORD_」が使えます。BIT」と「getconf LONG_BITはwordとlongのビット数を獲得し、64ビットシステムはそれぞれ32と64を得るべきである。
参考コードは以下の通りです。
例えば、別の64ビットのマシンで動作した結果:
32位:Linux local host.localdomain 2.62-431.17.1.el 6.i 68633451;1 SMP Wed May 7:52:21 UTC 2014 i 686 i 386 GNU/Linux
64位:Linux demolinux 2.62-431.11.2.el6.x 86_64〹1 SMP Tue Mar 25:59 UTC 2014 x 86_64 x 86_64 x 86_64 GNU/Linux
使用方法3:「getconf WORD_」BIT」と「getconf LONG_BITはwordとlongのビット数を獲得し、64ビットシステムはそれぞれ32と64を得るべきである。
「getconf WORD_」が使えます。BIT」と「getconf LONG_BITはwordとlongのビット数を獲得し、64ビットシステムはそれぞれ32と64を得るべきである。
参考コードは以下の通りです。
ldconfig
if [ $(getconf WORD_BIT) = '32' ] && [ $(getconf LONG_BIT) = '64' ] ; then
ln -s /usr/local/mysql/lib/mysql /usr/lib64/mysql
else
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
fi
その他の方法1:命令file/sbin/initの実行
[root@localhost jianbao]# file /sbin/init
/sbin/init: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
32ビットのLinuxで、64ビットなら64ビットと表示されます。例えば、別の64ビットのマシンで動作した結果:
[root@edunosql ~]# file /sbin/init
/sbin/init: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
方法二:uname-a32位:Linux local host.localdomain 2.62-431.17.1.el 6.i 68633451;1 SMP Wed May 7:52:21 UTC 2014 i 686 i 386 GNU/Linux
64位:Linux demolinux 2.62-431.11.2.el6.x 86_64〹1 SMP Tue Mar 25:59 UTC 2014 x 86_64 x 86_64 x 86_64 GNU/Linux
使用方法3:「getconf WORD_」BIT」と「getconf LONG_BITはwordとlongのビット数を獲得し、64ビットシステムはそれぞれ32と64を得るべきである。