sdkman 在 nixos 上缺少 less-R 命令

sdkman 在 nixos 上缺少 less-R 命令

我最近在 nixos 上安装了 sdkman.io 并遇到了一些奇怪的错误。还安装了which、jdk和less后,我在运行时仍然收到此错误sdk list

less -R: command not found

但我可以less从同一个终端运行。我怎样才能解决这个问题?

答案1

less您需要确保及其参数之间有一个未转义的空格字符。

从错误消息中可以看出,shell 将整个字符串less -R视为命令,因此命令执行字符串中的空格字符被转义。可能是因为某处使用了引号(不太可能使用反斜杠)。

查看 sdkman-cli 源代码,您export PAGER="less -R".bashrc.bash_profile.

在这种情况下,第 33 或 35 行src/main/bash/sdkman-utils.sh会产生这个错误。这似乎是预期的,因为PAGER环境变量用于定义可执行文件,并且假设它不包含其他选项(看起来像常见做法而不是标准)。

设置less环境变量的选项LESS 应使用,因此在您的情况下应应用以下设置:

export PAGER=less
export LESS="-R"

作为练习,您可以通过在 shell 中键入以下内容来验证您在任何系统上是否收到此错误消息:

"less -R"

相关内容