Как использовать SDKMAN! устанавливать пакеты из скриптов

С SDKMAN! установлен ( http://sdkman.io/), я могу установить пакеты из командной строки, используя, например:

sdk install java 8u144-zulu

Однако, когда я пытаюсь сделать то же самое из скрипта "my-installer.sh", я получаю сообщение об ошибке: "sdk: команда не найдена".

my-installer.sh:

#!/bin/bash
sdk install java 8u144-zulu

Что я делаю неправильно?

1 ответ

Вам нужно получить исходный код в ~/.sdkman/bin/sdkman-init.sh, как в

#!/bin/bash
. /home/alexw/.sdkman/bin/sdkman-init.sh
sdk install java 8u144-zulu

'sdk' - это функция bash, объявленная в sdkman-init.sh, и ваша первая строка (#!...) запускает новую (!) оболочку.

надеюсь, это поможет! Wehe

Вот как найти sdkman-init.sh в более общем смысле:

source "$HOME/.sdkman/bin/sdkman-init.sh"

Это похоже на код, который SDKMAN добавляет в ваш .zshrc файл:

#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/Users/powers/.sdkman"
[[ -s "/Users/powers/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/powers/.sdkman/bin/sdkman-init.sh"

Тип which sdk если вы хотите увидеть полученную функцию:

sdk () {
    COMMAND="$1"
    QUALIFIER="$2"
    case "$COMMAND" in
        (l) COMMAND="list"  ;;
        (ls) COMMAND="list"  ;;
        (v) COMMAND="version"  ;;
        (u) COMMAND="use"  ;;
...
...
Другие вопросы по тегам