用于检测OS体系结构的脚本,并根据结果选择file-x32或file-x64

时间:2013-09-07 19:34:04

标签: linux architecture x86 64-bit detect

我正在尝试让我的脚本检查x32或x64操作系统,并根据结果从脚本包中选择文件。

例如: 如果操作系统是x32位,我希望脚本将file-x32复制到安装目录 如果操作系统是x64位,我希望脚本将file-x64复制到安装目录

我遇到了打印结果的代码:

    if [ `getconf LONG_BIT` = "64" ]
    then
        echo "I'm 64-bit"
    else
        echo "I'm 32-bit"
    fi

像这样修改这个脚本来完成这项工作会非常简单:

    if [ `getconf LONG_BIT` = "64" ]
    then
        mv /tmp/autoscript/file-x64 /var/destination
    else
        mv /tmp/autoscript/file-x32 /var/destination
    fi

如果可能的话,我也想向用户回应: 检测到x32位操作系统 要么 检测到x64位操作系统

1 个答案:

答案 0 :(得分:2)

if-else块可以包含多个语句。因此,如果你想为每个分支建立一个回声,你可以这样做。

if [ `getconf LONG_BIT` = "64" ]
then
    echo "I'm 64-bit"
    mv /tmp/autoscript/file-x64 /var/destination
else
    echo "I'm 32-bit"
    mv /tmp/autoscript/file-x32 /var/destination
fi

如果您想在其他地方使用架构信息,可以将其存储在变量中并执行以下操作:

arch=$(getconf LONG_BIT)
echo "I'm $arch-bit"
if [ "$arch" = "64" ]
then
    mv /tmp/autoscript/file-x64 /var/destination
else
    mv /tmp/autoscript/file-x32 /var/destination
fi

更好的是,有了变量,你可以这样做:

arch=$(getconf LONG_BIT)
echo "I'm $arch-bit"
mv /tmp/autoscript/file-x$arch /var/destination