#!/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
sheel 命令 vmware环境 jdk一键安装
最新推荐文章于 2024-03-18 22:33:48 发布