为什么我的终端启动时显示“(eval):export:1:在此上下文中无效”?

为什么我的终端启动时显示“(eval):export:1:在此上下文中无效”?

当我打开终端时,显示错误

(eval):export:1: not valid in this context: Fusion.app/Contents/Public:/Applications/Postgres.app/Contents/Versions/latest/bin

我不知道是什么导致了这个错误,主要是因为我没有安装 Postgres。错误似乎可能来自 VMware Fusion,而我确实有。

我使用的是 macOS 10.14.5、zsh 5.3,安装了 VMware Fusion 11.1.0。我以前安装了 Postgres(用于与 Heroku 配合使用),但我意识到我的项目不需要它,所以我删除了它。

答案1

事实证明,问题在于我的路径包含 Postgress 和 VMWare,尽管我卸载了它们。它们不是添加到 .zshrc 中,而是添加到 /etc/paths.d(一个目录)中。在这个目录中,有 3 个文件,其中两个名为com.vmware.fusion.publicpostgresapp。我只是从 /etc/paths.d 中删除了这些文件,现在我的 zsh 启动时没有错误!

感谢@MatrixManAtYrService 引导我找到这个问题的答案。

答案2

我得到了类似的信息:

(eval):export:1: not valid in this context: -A

就我而言,它是在gcloud安装程序修改我的 .zshrc 以添加此行时启动的:

if [ -f '/Users/matt/Downloads/google-cloud-sdk/completion.zsh.inc' ]; then . '/Users/matt/Downloads/google-cloud-sdk/completion.zsh.inc'; fi

每当我尝试使用 Tab 键完成 gcloud 命令时都会出现错误。

注释掉该行可消除错误。VMWare 或 Postgres 安装程序是否修改了您的 .zshrc?您可能需要删除它所做的任何修改。

答案3

VMWare Fusion 通过添加文件将自身添加到路径中/etc/paths.d/com.vmware.fusion.public。该文件包含未转义的空格,这导致了错误。

运行sudo su root切换到 root 用户(/etc/paths.d 目录的所有者),然后运行sudo echo /Applications/VMware\\\ Fusion.app/Contents/Public > /etc/paths.d/com.vmware.fusion.public用转义空格字符的路径替换该路径,然后exit返回到您的用户。

相关内容