在 WSL2 / Ubuntu 20.04 下使用 ZSH,shell 脚本无法正常工作(direnv 问题)

在 WSL2 / Ubuntu 20.04 下使用 ZSH,shell 脚本无法正常工作(direnv 问题)

我跟着本指南使用 ZSH/oh-my-zsh 设置 WSL2。当我打开一个新的 Ubuntu 终端时,我确实可以加载 ZSH,但我的 rbenv 和 direnv 不能正常工作(是的,它们在 .zshrc 中设置正确,请阅读代码块):

/home/will/.zshrc:122: command not found: rbenv
/home/will/.zshrc:126: command not found: direnv
➜  will

如果此时我使用 direnv,可执行文件可以运行但direnv allow不起作用(无输出)。

但是,如果我立即通过重新运行 shell 脚本,exec $SHELL则这些错误不会发生,并且direnv allow效果很好。

是否存在一些时间问题,环境仍在旋转或类似情况,这就是为什么在第二次执行 shell 脚本后一切都正常运行?我怎样才能让它第一次就正确运行?

值得注意的是,我在 Windows 终端中都遇到了这个问题,如果我从 powershell 直接加载 ubuntu,它似乎与终端无关。

谢谢!

答案1

我仔细查看了我的 .zshrc,问题是一个复制/粘贴错误,因为尝试重用以前的 Linux VM 中的 .zshrc。

具体来说,eval "$(rbenv init -)"它在多个地方被调用,似乎把一切都搞砸了;删除多余的调用并将其放在 .zshrc 中的正确位置似乎已经为我解决了这个问题。

相关内容