是否可以在bash脚本中检测32位和64位?

时间:2020-03-06 14:28:13  来源:igfitidea点击:

我正在编写一个bash脚本以自动化方式处理某些安装...我有可能以32或者64位二进制文​​件获取一个这样的程序...是否有可能从bash中检测机器架构,所以我可以选择正确的二进制文件?

这将适用于Ubuntu计算机。

解决方案

uname -a

给你任何可以使用的东西吗?我没有要测试的64位计算机。

迈克·斯通的注解:尽管可以

uname -m

对于64位,将给出" x86_64",对于其他32位类型将给出其他值(在我的32位VM中,它是" i686")。

我们可以执行以下操作:

if $(uname -a | grep 'x86_64'); then
  echo "I'm 64-bit"
else
  echo "I'm 32-bit"
fi

MACHINE_TYPE=`uname -m`
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
  # 64-bit stuff here
else
  # 32-bit stuff here
fi

是的,uname -a应该可以解决问题。请参阅:http://www.stata.com/support/faqs/win/64bit.html。

slot8(msd):/opt # uname -a
Linux slot8a 2.6.21_mvlcge500-electra #1 SMP PREEMPT Wed Jun 18 16:29:33 \
EDT 2008 ppc64 GNU/Linux

请记住,除了Intel / AMD之外,还有其他CPU体系结构。