Você está certo de que a substituição ocorre quando o PATH está definido. É simples contornar isso. Defina uma função bash
/ zsh
:
javaswitch() { [[ "$1" =~ ^[0-9]$ ]] && export PATH=${PATH/java[0-9]/java$1}; }
Agora, sempre que você quiser mudar as versões do java, execute:
javaswitch 7
Ou:
javaswitch 8
Para tornar a definição de javaswitch
permanent, coloque-a no arquivo ~/.bashrc
.
Como funciona
-
[[ "$1" =~ ^[0-9]$ ]]
Para proteção contra erros de digitação, isso testa para garantir que o argumento seja um número. Se não for, então nenhuma alteração será feita.
Se tiver certeza de que usará somente as versões 7 ou 8, use em vez disso:
[[ "$1" =~ ^[7-8]$ ]]
-
export PATH=${PATH/java[0-9]/java$1}
Isso usa a substituição de padrões para atualizar o PATH para o novo número de versão.