install.sh é executado em um subshell com seu próprio ambiente. Neste ambiente, você define JAVA_HOME com sucesso.
Se install.sh com sua subshell estiver terminada, seu ambiente também desaparecerá. Um subshell não pode definir uma variável em seu processo de chamada.
Se você iniciar install.sh com source install.sh
, ele não será executado em uma subshell e você poderá definir JAVA_HOME. Mas não sei se as outras linhas de código em install.sh estão preparadas para serem executadas via source
.