【问题标题】:Where is the `sdk` command installed for sdkman为 sdkman 安装的 `sdk` 命令在哪里
【发布时间】:2017-07-08 16:18:34
【问题描述】:

我刚刚安装了sdkman,用于在我的机器上安装 grails (MacOS)。当我运行 which sdk 命令时,我没有得到任何输出。但是当我运行sdk help 命令时,shell 能够解决它并给出正确的输出。我检查了 $PATH 环境变量中提到的所有目录,但找不到任何可执行文件sdk。所以我的问题是shell如何能够解析sdk命令?

注意:我还检查了 Ubuntu,我看到了相同的行为。

【问题讨论】:

  • which 几乎从来都不是正确的命令。请改用type
  • 谢谢!显然它是在源文件中定义的函数。

标签: linux bash sdkman


【解决方案1】:

好的。所以我发现了。正如上面评论中提到的@that-other-guy,我使用了type -a 而不是which,这表明它是一个定义的函数。

【讨论】:

    【解决方案2】:

    正如您正确提到的,“sdk”不是命令,它是由 sdkman-main.sh(在 ~/.sdkman/src 中)创建的声明函数,一旦从 ~/.sdkman/bin/sdkman-init.sh 调用

    这就是installation page of sdkman 要求在每次加载 bash 配置文件时声明此函数的 .bash_profile 中附加以下步骤的原因:

    #这必须在文件末尾才能使 SDKMAN 工作!!!

    [[ -s "/home/dudette/.sdkman/bin/sdkman-init.sh" ]] && source "/home/dudette/.sdkman/bin/sdkman-init.sh"

    这也是“which”命令在检查 linux PATH 上安装的命令时没有选择它的原因

    【讨论】:

      猜你喜欢
      • 2016-03-26
      • 2016-05-24
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多