如何在 Linux 上将 jenv 与 Fish shell 结合使用?

如何在 Linux 上将 jenv 与 Fish shell 结合使用?

jenv按照官方说明下载了它,将它添加到 PATH,然后尝试使用说明中给出的命令来初始化它,但它抛出了以下错误:

> source (jenv init -|psub)

Command 'hash' not found, did you mean:
  command 'bash' from deb bash (5.1-2ubuntu1)
  command 'sash' from deb sash (3.8-5)
  ...
Try: sudo apt install <deb name>
/tmp/.psub.LxsYuMSHNC (line 1): 
hash -r
^
from sourcing file /tmp/.psub.LxsYuMSHNC
    called on line 14 of file /tmp/.psub.Z8yofQashD
in function 'jenv' with arguments 'rehash'
    called on line 7 of file /tmp/.psub.lD4Y0jQZfO
from sourcing file /tmp/.psub.lD4Y0jQZfO

我知道这个hash实用程序是一个 bash 实用程序,但你能以某种方式让它在 fish 中工作吗?它有官方文档,有 fisher 插件,所以我怀疑它根本不受支持。

我已经发现Reddit 上有一篇帖子描述了我的问题,但它已经相当旧了,而且这个解决方案对我来说不起作用。

我暂时用官方命令来修复这个问题source (jenv init --no-rehash -|psub),官方命令会完全跳过哈希函数。有没有办法让它在没有解决方法的情况下工作?

答案1

目前您可能已经找到了最好的解决方法。

此注释在 README 的底部提到了已知的 Fish 问题,并且这个问题提到维护者不再有时间管理该项目,并建议安省SDK管理员作为比 jenv 更好的选择。

我曾在 Fish 下使用过 asdf,但已经一年多了。我不记得它运行得如何,也没有用它来管理 Java 版本。我似乎记得一些小的安装问题,但我相信这些是由于我个人的环境偏好。

jenv但根据Fish 的当前维护状态及其已知问题,可能值得尝试一下 asdf 或 SDKMan 。

相关内容