如何使用SDKMAN!从脚本中安装包

How to use SDKMAN! to install packages from within scripts

有SDKMAN!安装(http://sdkman.io/),我可以从命令行安装包,例如:

sdk install java 8u144-zulu

但是,当我尝试从脚本 "my-installer.sh" 中执行相同的操作时,我收到错误消息:"sdk: command not found".

我的-installer.sh:

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

我做错了什么?

您需要在 ~/.sdkman/bin/sdkman-init.sh 中获取源代码,例如在

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

'sdk' 是在 sdkman-init.sh 中声明的 bash 函数,您的第一行 (#!...) 开始一个新的 (!) shell .

希望对您有所帮助!我们

以下是更通用的来源 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=""
    QUALIFIER=""
    case "$COMMAND" in
        (l) COMMAND="list"  ;;
        (ls) COMMAND="list"  ;;
        (v) COMMAND="version"  ;;
        (u) COMMAND="use"  ;;
...
...