sheel 命令 vmware环境 jdk一键安装

#!/bin/bash

#此文件/opt/download 目录下没有jdk无法安装
#也仅仅只是删除/opt/software目录下的jdk 如果jdk在其他目录 自己手动删除
#有时运行完毕需要重新 source /etc/profile 

ENV_DIR='/etc/profile.d/'
#绿色安装根目录
SOFTWARE_DIR='/opt/software/'
#安装源文件目录
DOWNLOAD_DIR='/opt/download/'



#进入就先进行配置文件的判断
RST=`ls $ENV_DIR|grep myenv.sh`
if [[ -z $RST ]]                    #如果RST 不存在
then
      ENV_DIR=$ENV_DIR'myenv.sh'    #ENV_DIR=/etc/profile.d/myenv.sh          
      eval touch $ENV_DIR           #touch /etc/profile.d/myenv.sh  作为字符串命令>行输出
      #eval echo >$ENV_DIR          
      echo $ENV_DIR' created'
else
      ENV_DIR=$ENV_DIR'myenv.sh'
      echo $ENV_DIR'-----existed'
fi

source /etc/profile

#根据参数1提供的识别符和参数2提供的行数删除相关的配置信息
#函数 删除配置文件 相关信息 实验成功
function removeIfExists(){
      if [ $# -lt 2 ]
      then
            echo 'no sign when remove env variables'
            exit -1
      fi
         #$1 表示#后面的内容开始删除    $2 表示行数
      sed -rin "/^#.*?$1/,+$2d" $ENV_DIR
      echo "env.sh variables [ $1 ] removed"
}
removeIfExists jdk 3   #调用函数 并带参数

#根据参数1提供的目录前缀删除历史已解压
function removeSrcIfExists(){
      if [ $# -lt 1 ]
      then
            echo 'no sign when remove src'
            exit -1
      fi

      RST=`ls $SOFTWARE_DIR|grep $1*`
      if [[ $RST ]]
      then
            #递归删除已安装的jdk目录
            rm -rf $SOFTWARE_DIR$RST
            echo $SOFTWARE_DIR$1'removed'
	else
		echo "no [ $1 ] dir"
      fi
}
removeSrcIfExists jdk

#根据参数1提供的源文件前缀名将相关资源解压到目标路径
function tarxTo(){
      if [ $# -lt 1 ]
	then
		echo "no sign when tar -zxf $1"
            exit -1
      fi

      RST=(`ls $DOWNLOAD_DIR|grep $1`)
      if [ ${#RST[@]} -gt 0 ]
      then
            RST=${RST[0]}
            tar -zxf $DOWNLOAD_DIR$RST -C $SOFTWARE_DIR
            #先变字符串再解析命令
            eval mv $SOFTWARE_DIR$1'*' $SOFTWARE_DIR$1
            echo "$1 名字已更改。"
      else
            echo "no $1 source in $DOWNLOAD_DIR"     
      fi
}
tarxTo jdk


#目前存在两个问题   没有这个文件不能新建这个文件  有这个文件 #!/bin/bash到下面去了
#将参数1环境变量列表加入myenv.sh
function addEnvVar(){
	echo '================= add env variables ================'
	DIR="$1"
	DIR=${DIR//;/ }		#将参数中的;替换成 空格
	for item in $DIR
	do
		sed -in '$a'$item $ENV_DIR	
		echo $item' appended'
	done
	sed -in 's/-/ /g' $ENV_DIR
	#sed -in '${x;p;x}' $ENV_DIR		#在最后加一空行
	echo '====================================================='
}
JAVA_ENV="#jdk;export-JAVA_HOME=$SOFTWARE_DIR"'jdk;export-PATH=$JAVA_HOME/bin:$PATH;export-CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar'

addEnvVar $JAVA_ENV
#每次添加完环境变量后再次激活
source /etc/profile

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值