准备
下载jdk-8u171-linux-x64.tar.gz
shell代码
echo "INFO : BEGIN INSTALLING JDK..."
#1、压缩包(存在)
pack=$1
if [[ ! "$pack" =~ ^.*jdk.*\.(tar\.gz|tgz)$ ]];then
echo "ERROR : ONLY SUPPORT tar.gz OR tgz COMPASS FORMAT"
exit 1
fi
#2、目标目录不存在/opt/software则创建,存在则删除子目录
dest=${2%/}
old=$(ls $dest|grep ^jdk)
if [ $? -eq 0 ];then
rm -rf $dest/$old
echo "INFO : OLD JDK EDITION FOUND BUT REMOVED"
fi
if [ ! -e $dest ];then
mkdir -p $dest
echo "INFO : DEST DIR NOT EXIST BUT CREATED"
fi
if [ ! -d $dest ];then
echo "ERROR : DEST FOR ARG 2 MUST BE A DIRECTORY"
exit 2
fi
#3、解压
tar -zxf $pack -C $dest
if [ $? -eq 0 ];then
echo -n " INFO : SUCCESS "
else
echo -n "ERROR : FAIL "
exit 3
fi
echo " TO DECOMPRESS $pack TO $dest"
#4、 环境变量
env=/etc/profile.d/myenv.sh
if [ ! -e $env ];then
touch $env
echo "INFO : ENV FILE NOT EXIST BUT TOUCHED"
fi
old=$(cat /etc/profile.d/myenv.sh|awk 'BEGIN{b=0; e=0; ln=0;}{ln++; if(b>0 && match($0,/^#.*/)) e=ln; if(match($0,/^#.*jdk/)) b=ln}END{if(b>0 && e==0) e=ln; print b","e}')
if [ "$old" != "0,0" ]; then
sed -i "${old}d" $env
echo "INFO :ENV VARIABLES FOR JDK FOUND REMOVED"
fi
old=$(ls $dest|grep ^jdk)
dest="$dest/$old"
cat >> $env <<EOF
# jdk 1.8
export JAVA_HOME=$dest
export PATH=\$PATH:\$JAVA_HOME/bin
export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
EOF
echo "INFO : ENV VARIABLES APPEND TO $env"
#激活环境变量
source /etc/profile
if [ $? -eq 0 ];then
echo "INFO : SUCCESS TO ACTIVATE ENV VARIABLES FOR JDK"
else
echo "ERROR : FAIL TO ACTIVATE ENV VARIBLES FOR JDK"
fi
echo "INFO : FINISH INSTALLING JDK"
最后提供所需tgz文件,运行shell脚本即可完成jdk的安装配置