我跟着本指南使用 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 中的正确位置似乎已经为我解决了这个问题。