#!/bin/bash # this shell will be installed jdk*.tar.gz #author: wangjiulong #匹配後jdk版本信息,會存在tmp_jdk.txt文件中 jdk_pkg=`cat $tmp_jdk` jdk_tar=`cat $tmp_jdk | awk -F.tar.gz '{print $1}'` jdk_num=`cat $tmp_jdk | awk -F.tar.gz '{print $1}' | grep -F- '{print $2}'` datef() { date "+%Y/%m/%d %H:%M"; } #custom log print_log(){ if [[ -d $log_dir ]];then echo "[$(datef)] $1" >> $log else echo "[$(datef)] log path does not exist,created first" >>$log mkdir -p $log_dir echo "[$(datef)] $1" >> $log fi } #檢查緩存文件tmp_jdk.txt是否存在,不存在shell退出。 #check tmp file check_tmp_file(){ cd $pwd_dir if [ ! -f $tmp_jdk ];then print_log "緩存文件不存在,shell即將退出" exit else check_install_jdk fi } check_install_jdk(){ jdk_path=/data/java java_version=`java -version > $tmp_jdk_version 2>&1;echo $?` java_home=`ls $jdk_path > /dev/null 2>&1 ; echo $?` java_value=`cat $java_version | grep "$jdk_num"` #首先,判斷是否存在jdk路徑,不存在,直接安裝jdk了。若是存在,接下來判斷jdk的版本。若是查詢不到jdk的 #版本,那麼開始安裝jdk。而若是查詢到jdk的版本,提示用戶,當前系統已經安裝了jdk。 case $java_home in 0) case $java_value in 0) print_log "jdk已經安裝" ;; *) print_log "當前系統不存在$jdk_tmp版jdk,即將安裝" cd $tar_dir tar -zxvf $jdk_pkg -C $jdk_path cd $jdk_path tar -zxvf $jdk_pkg -C $jdk_path cd $jdk_path unlink jdk ln -s $jdk_tar jdk chown -R root.root $jdk_tar jdk Java_home_num=`cat /etc/profile | grep "JAVA_HOME" | wc -l` if [ $Java_home_num -eq 0 ];then echo "export JAVA_HOME=/data/java/jdk" >> /etc/profile echo 'PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile fi print_log "source" ;; esac ;; *) print_log "當前系統不存在$jdk_tar目錄,也未安裝jdk。接來下開始安裝$jdk_pkg" mkdir -p $jdk_path cd $tar_dir tar -zxvf $jdk_pkg -C $jdk_path cd $jdk_path ln -s $jdk_tar jdk chown -R root.root $jdk_tar jdk echo "export JAVA_HOME=/data/java/jdk" >> /etc/profile echo 'PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile ;; esac } check_tmp_file
tmp_jdk.txt這個文本,記錄了用戶確認安裝jdk的版本信息。java