Я удалил, затем переустановил SDKMan , и теперь функции работают как SDKMan.
Условие, которое они добавляют, является странным. Это напоминает мне о ярлыках в Perl.
Вот код, добавленный к .bashr c:
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/home/peter/.sdkman"
[[ -s "/home/peter/.sdkman/bin/sdkman-init.sh ]] && source "/home/peter/.sdkman/bin/sdkman-init.sh
Это работает так же хорошо:
if [[ -s "/home/peter/.sdkman/bin/sdkman-init-sh" ]]; then source "/home/peter/.sdkman/bin/sdkman-init-sh"; fi
но это на несколько символов длиннее, я Угадай. И если бы они использовали переменную, которую они только что определили над ней, она была бы еще короче:
if [[ -s "$SDKMAN_DIR/bin/sdkman-init-sh" ]]; then source "$SDKMAN_DIR/bin/sdkman-init-sh"; fi
Бармар: Вы были правы. Расположение в .bashr c не имеет значения. Спасибо. Wiimm: Спасибо за совет. Марк: Для удобства я экспортировал функции. Спасибо.