[英]Detect os type and set JAVA_HOME
我想在bash腳本中檢測os類型,並相應地設置JAVA_HOME。
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
我已經嘗試過了,但是似乎沒有將導出寫入文件中。
任何幫助是極大的贊賞。
我不確定pushd
用途是什么,但是您不希望使用\\
因為這將是pushd
命令行的延續,而不是實際運行echo命令。 您想,我認為:
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
,這將是:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.