我编写了一个bash脚本来下载特定的Java二进制tar球,将其解压缩,然后配置Java版本 由于Java安装工具需要手动交互,因此我使用“期望”来“发送”命令的答案。 我将Java二进制文件放入“ / opt”
curl -o /opt/jdk-8u201.tar.gz https://hostname
tar -zxvf /opt/jdk-8u201.tar.gz -C /opt
#!/bin/bash
yum -y install expect
EXPECT=$(which expect)
JAVA_HOME=/opt/jdk-8u201
update-alternatives --install /usr/bin/java java ${JAVA_HOME%/}/bin/java 2000
${EXPECT} <<EOD
spawn update-alternatives --config java
expect "Enter to keep the current selection\[\+\], or type selection number:"
send 3
EOD
当我手动执行安装并输入:
echo $JAVA_PATH
它打印信息。
如果我在Shell脚本中执行此操作,则它不会更新路径。
有没有我看不到的东西吗?谢谢
干杯, 罗兰