sdkman 的 `sdk` 命令安装在哪里
Where is the `sdk` command installed for sdkman
我刚刚安装了 sdkman 用于在我的机器 (MacOS) 上安装 grails。当我 运行 which sdk
命令时,我没有得到任何输出。但是当我 运行 sdk help
命令时 shell 能够解决它并给出正确的输出。我检查了 $PATH 环境变量中提到的所有目录,但找不到任何可执行文件 sdk
。所以我的问题是 shell 如何解析 sdk
命令?
注意:我也检查了 Ubuntu,我看到了相同的行为。
好的。所以我发现了。正如@that-other-guy 在上面的评论中提到的,我使用 type -a
而不是 which
,这表明它是一个定义的函数。
正如您正确提到的那样,"sdk" 不是命令,它是由 sdkman-main.sh(在 ~/.sdkman/src 中)创建的声明函数,一旦从 ~/.sdkman/bin/sdkman-init.sh
这就是 installation page of sdkman 要求在 .bash_profile 中附加以下步骤的原因,它在每次加载 bash 配置文件时声明此函数:
#这必须在文件的末尾,SDKMAN 才能工作!!!
[[ -s "/home/dudette/.sdkman/bin/sdkman-init.sh" ]] && source "/home/dudette/.sdkman/bin/sdkman-init.sh"
这也是 "which" 命令在检查 linux PATH
上已安装的命令时没有选择它的原因
我刚刚安装了 sdkman 用于在我的机器 (MacOS) 上安装 grails。当我 运行 which sdk
命令时,我没有得到任何输出。但是当我 运行 sdk help
命令时 shell 能够解决它并给出正确的输出。我检查了 $PATH 环境变量中提到的所有目录,但找不到任何可执行文件 sdk
。所以我的问题是 shell 如何解析 sdk
命令?
注意:我也检查了 Ubuntu,我看到了相同的行为。
好的。所以我发现了。正如@that-other-guy 在上面的评论中提到的,我使用 type -a
而不是 which
,这表明它是一个定义的函数。
正如您正确提到的那样,"sdk" 不是命令,它是由 sdkman-main.sh(在 ~/.sdkman/src 中)创建的声明函数,一旦从 ~/.sdkman/bin/sdkman-init.sh
这就是 installation page of sdkman 要求在 .bash_profile 中附加以下步骤的原因,它在每次加载 bash 配置文件时声明此函数:
#这必须在文件的末尾,SDKMAN 才能工作!!!
[[ -s "/home/dudette/.sdkman/bin/sdkman-init.sh" ]] && source "/home/dudette/.sdkman/bin/sdkman-init.sh"
这也是 "which" 命令在检查 linux PATH
上已安装的命令时没有选择它的原因