실제로 스크립트를 실행해 봤는데 그다지 효율적이지 않은 것 같고 실행되게 하는 유일한 방법은 "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