制作一个脚本来更改Java SDK

制作一个脚本来更改Java SDK

我实际上已经运行了脚本,但我认为它不是很有效,让它运行的唯一方法是将其作为“sourcechange-java.sh”运行有没有办法让它不必输出到首先文件(我已经尝试了所有我可以用谷歌搜索到的关于将变量添加到数组的方法,唯一有效的方法是先访问文件)。

#!/bin/sh

/usr/libexec/java_home -V 2>&1 | grep 86 | awk -F ":" '{print $1}' > java
# pattern="([0-9] [0-9])"
sed -i -e 's/[ \t]*//' java
IFS=$'\n' read -d '' -r -a newJava < java
rm java


OIFS="$IFS"
IFS=([0-9] [0-9])
newJAVA=""
while [[ $newJAVA = "" ]]; do
        echo "Select your Java version for this instance"
        select newJAVA in ${newJava[@]}; do
                if [[ $newJAVA = "" ]]; then
                        echo "Please enter a valid option. Retry."
                else {
                        export JAVA_HOME=`/usr/libexec/java_home -v $newJAVA` 
                        echo $JAVA_HOME
                        echo `java -version`
                }
                fi
                break
                done
        done
IFS="$OIFS"
# exit 0

我打算将其放入 .bash_profile (mac) 中,但我想在创建文件之前将其删除。有没有办法让改变永久化?我想我想提供仅用于此外壳或永久的选项。

答案1

是的,您可以将前 4 行代码替换为:

read -a newJava <<<$(/usr/libexec/java_home -V 2>&1 | grep x86 | awk -F ":" '{print $1}' | xargs echo -n)

答案2

这可能会做你想要的:sudo update-alternatives --config java

相关内容