首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测os类型并设置JAVA_HOME

检测os类型并设置JAVA_HOME
EN

Stack Overflow用户
提问于 2014-09-24 17:05:32
回答 1查看 149关注 0票数 0

我希望检测bash脚本中的os类型,并相应地设置JAVA_HOME。

代码语言:javascript
复制
if   [[ $(type -t apt-get) == "file" ]]; then os="apt"
    elif [[ $(type -t yum)     == "file" ]]; then os="yum"
    else
            echo "Could not determine os."
    fi

case "$os" in

        apt)    pushd /etc/ \
                echo 'export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/' >> /etc/profile ;;

        yum)    pushd /etc/profile.d/ \
                echo 'export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/' >> /etc/profile.d/user_env.sh ;;
esac

我试过了,但似乎没有将导出写到文件中。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-24 17:26:28

我不知道pushd在这里有什么用途,但是您不需要\,因为这将是pushd命令行的延续,而不是实际运行回显命令。你想要的话我想:

代码语言:javascript
复制
if   [[ $(type -t apt-get) == "file" ]]; then os="apt"
elif [[ $(type -t yum)     == "file" ]]; then os="yum"
else
    echo "Could not determine os."
fi

case "$os" in
        apt)    echo 'export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/' >> /etc/profile ;;
        yum)    echo 'export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/' >> /etc/profile.d/user_env.sh ;;
esac

如果您想保留pushd,它将是:

代码语言:javascript
复制
case "$os" in

        apt)    pushd /etc/
                echo 'export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/' >> /etc/profile ;;

        yum)    pushd /etc/profile.d/
                echo 'export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/' >> /etc/profile.d/user_env.sh ;;
esac
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26022620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档