1

重複の可能性:
特定のLinuxが32ビットか64ビットかを判断する方法は?

64ビットシステムの場合は1つのプログラムをシェル化し、32ビットシステムの場合は別のプログラムをシェル化できるシェルスクリプトshファイルを作成する方法を知っている人はいますか?ありがとうございます。

4

4 に答える 4

4
if $(uname -m | grep '64'); then
  echo "ARCH: 64-bit"
else
  echo "ARCH: 32-bit"
fi
于 2012-09-03T16:30:33.503 に答える
2

試してみてくださいuname -mx86_64は64ビットカーネル、i686は32ビットカーネルです。これに基づいて、いずれかのプログラムを呼び出すことができます。

于 2012-09-03T16:02:16.210 に答える
1

(thkalaのコメントに応えて。)

if echo __SIZEOF_POINTER__ | cpp -E - - | grep '^8$' >/dev/null; then
    do_stuff
fi

どこでも機能する可能性は低いですが、cppがGCCからのものである場合は機能します。x64(POWER、SPARC、IA64など)だけでなく、64ビットアーキテクチャを検出できるという利点があります。

于 2012-09-03T16:07:49.333 に答える
0

プロセッサがカーネルではなく64ビットであるかどうかを知りたい場合は、システムでロングモード(-lm)フラグを検索できます。32ビットではなく64ビットで存在します。

cat /proc/cpuinfo | grep lm

于 2012-09-03T20:07:04.677 に答える