Java SDK를 변경하는 스크립트 만들기

Java SDK를 변경하는 스크립트 만들기

실제로 스크립트를 실행해 봤는데 그다지 효율적이지 않은 것 같고 실행되게 하는 유일한 방법은 "sourcechange-java.sh"로 실행하는 것 밖에 없습니다. 출력하지 않아도 되도록 하는 방법이 있나요? 먼저 파일에 저장합니다(배열에 변수를 추가하는 방법에 대해 Google에서 검색한 모든 방법을 시도했지만 작동하는 유일한 방법은 먼저 파일에 액세스하는 것이었습니다).

#!/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

관련 정보