shell脚本自动安装jdk的方法示例

1.安装准备

1.jdk-8u221-linux-x64.tar.gz jdk压缩包(需要放在opt目录下)
2.shell脚本

2.shell命令

Sed 对字符的处理
-p  显示,将某个选择的数据打印显示。通常 p 会与参数 sed -n 一起执行
-d  删除,显示模式空间删除指定行后的内容,不会对原文件数据删除
-a  添加,a 的后面可以接字符串,该字符串会在当前指定行的下一行出现
-c  更改, c 的后面可以接字符串,该字符串可以取代 n1,n2 之间的行
-i   插入, i 的后面可以接字符串,该字符串会在当前指定行的上一行出现

3.shell脚本

使用前需将jdk压缩包放到opt目录下

#!/bin/bash

jdkTargz="/opt/jdk-8u221-linux-x64.tar.gz"

# 检查原先是否已配置java环境变量
checkExist(){
 jdk1=$(grep -n "export JAVA_HOME=.*" /etc/profile | cut -f1 -d':')
    if [ -n "$jdk1" ];then
        echo "JAVA_HOME已配置,删除内容"
        sed -i "${jdk1}d" /etc/profile
    fi
 jdk2=$(grep -n "export CLASSPATH=.*\$JAVA_HOME.*" /etc/profile | cut -f1 -d':')
    if [ -n "$jdk2" ];then
        echo "CLASSPATH路径已配置,删除内容"
        sed -i "${jdk2}d" /etc/profile
    fi
 jdk3=$(grep -n "export PATH=.*\$JAVA_HOME.*" /etc/profile | cut -f1 -d':')
    if [ -n "$jdk3" ];then
        echo "PATH-JAVA路径已配置,删除内容"
        sed -i "${jdk3}d" /etc/profile
    fi
}

# 查询是否有jdk.tar.gz
if [ -e $jdkTargz ];
then

echo "— — 存在jdk压缩包 — —"
 echo "正在解压jdk压缩包..."
 tar -zxvf /opt/jdk-8u221-linux-x64.tar.gz -C /opt
 if [ -e "/opt/install/java" ];then
 echo "存在该文件夹,删除..."
 rm -rf /opt/install/java
 fi
 echo "---------------------------------"
 echo "正在建立jdk文件路径..."
 echo "---------------------------------"
 mkdir -p /opt/install/java/
 mv /opt/jdk1.8.0_221 /opt/install/java/java8
 # 检查配置信息
 checkExist
 echo "---------------------------------"
 echo "正在配置jdk环境..."
 sed -i '$a export JAVA_HOME=/opt/install/java/java8' /etc/profile
 sed -i '$a export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' /etc/profile
 sed -i '$a export PATH=$PATH:$JAVA_HOME/bin' /etc/profile
 echo "---------------------------------"
 echo "JAVA环境配置已完成..."
 echo "---------------------------------"
  echo "正在重新加载配置文件..."
  echo "---------------------------------"
  source /etc/profile
  echo "配置版本信息如下:"
  java -version
else
 echo "未检测到安装包,请将安装包放到/opt目录下"
fi

到此这篇关于shell脚本自动安装jdk的方法示例的文章就介绍到这了,更多相关shell自动安装jdk内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Shell脚本实现在Linux系统中自动安装JDK

    A:本脚本运行的机器,Linux B:待安装JDK的机器, Linux 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装jdk的机器B上,然后就可以在A上运行本脚本: 复制代码 代码如下: $ ./install-jdk.sh B的IP or: 复制代码 代码如下: $ ./install-jdk.sh "B的IP" "JDK的URI" 就可以在机器B上安装JDK.jdk使用的tar包需要用户自己设定DEFAULT_JDK_SRC=?,保证可以wget得到即

  • shell脚本自动安装jdk的方法示例

    1.安装准备 1.jdk-8u221-linux-x64.tar.gz jdk压缩包(需要放在opt目录下) 2.shell脚本 2.shell命令 Sed 对字符的处理 -p 显示,将某个选择的数据打印显示.通常 p 会与参数 sed -n 一起执行 -d 删除,显示模式空间删除指定行后的内容,不会对原文件数据删除 -a 添加,a 的后面可以接字符串,该字符串会在当前指定行的下一行出现 -c 更改, c 的后面可以接字符串,该字符串可以取代 n1,n2 之间的行 -i 插入, i 的后面可以接

  • Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程

    一.源码安装 首先安装开发工具包 yum groupinstall -y "Development tools" 安装依赖软件包 yum -y install gcc gcc-c++ zlib-devel bzip2-devel openssl-devel sqlite-devel readline-devel libffi-devel wget 上Python 官网 找源码包的下载地址 wget https://www.python.org/ftp/python/3.7.6/Pyth

  • 使用python脚本自动生成K8S-YAML的方法示例

    1.生成 servie.yaml 1.1.yaml转json service模板yaml apiVersion: v1 kind: Service metadata: name: ${jarName} labels: name: ${jarName} version: v1 spec: ports: - port: ${port} targetPort: ${port} selector: name: ${jarName} 转成json的结构 { "apiVersion": "

  • shell脚本实现多进程运行的方法示例

    本文主要跟大家分享了shell脚本实现多进程运行的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 例子 for ip in 192.168.56.{1..254} do ( ping $ip -c 4 &>/dev/null; if [ $? -eq 0 ]; then echo $ip is alive fi ) & done wait 解释 重点是在于()和&,把for里面需要执行的命令当作一个组合并在后台运行. wait等待所有后台子程序执行完毕 执行效率

  • shell 脚本自动搭建nfs服务的方法示例

    本文介绍了shell 脚本自动搭建nfs服务的方法示例,分享给大家,具体如下: #vim /sh/zidong_dajian_nfs_fuwu.sh #!/bin/bash #name:zidong_dajian_nfs_fuwu.sh #path:/sh/ #update:2017-9-17 #测试网络是否通畅 ping -c 1 172.16.13.254 >/dev/null && echo **********网络ok********** #第一步:关闭selinux和防火墙

  • shell脚本一键安装MySQL5.7.29的方法

    本文参考51CTO博客作者wjw555的作品 脚本内容: vim install.mysql.sh #!/bin/bash [ -f /etc/init.d/functions ]&& . /etc/init.d/functions ###Check if user is root if [ $UID -ne 0 ]; then echo "Error: You must be root to run this script, please use root to install

  • MySQL数据库的shell脚本自动备份

    MySQL数据库的shell脚本自动备份 经常备份数据库是一个好习惯,虽然数据库损坏或数据丢失的概率很低,但一旦发生这种事情,后悔是没用的.一般网站或应用的后台都有备份数据库的功能按钮,但需要去手工执行.我们需要一种安全的,每天自动备份的方法.下面的这个shell脚本就是能让你通过过设定Crontab来每天备份MySQL数据库的方法. #!/bin/bash # 数据库认证 user="" password="" host="" db_name=

  • shell脚本自动检测网络掉线和自动重连

    在ppp移植成功后,有时会出现ppp掉线等情况.这篇文章写了一个自动检测连接网络的解决方法. 创建一个shell脚本,在里面添加一下内容.(记得给操作权限) #!/bin/sh //根据你自己的shell类型来选择. while true //先做一个死循环 do ping -c 3 -I ppp0 172.16.1.11 >/dev/null //指定一个出口去ping服务器的局域网ip,将结果重定向到/dev/null里. //-c 3 是指ping执行3次后结束. //-w 3 是指pin

  • 编译安装redisd的方法示例详解

    安装方法: yum安装 查看yum仓库redis版本 [root@centos ~]# yum list redis Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile Available Packages redis.x86_64 3.2.12-2.el7 myepel yum安装 [root@centos ~]# yum install redis -y 启动服务并设为开机启动

  • python自动下载图片的方法示例

    近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡. 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思.... 突然旁边的IOS同事问:'嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?' 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:'oh, It's simple. Wait for me a few minute.' 点开同事给的图片网站, 网站大概长这样: 在朕翻看了几十页之后,朕突然觉得有点上头.心

随机推荐