Как использовать 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" ;;
...
...