【问题标题】:(eval):export:1: not valid in this context(eval):export:1: 在这种情况下无效
【发布时间】:2019-07-21 09:11:11
【问题描述】:

我在没有任何配置的情况下运行“brew install hadoop”,之后,我使用以下行生成了一个公钥:

ssh-keygen -t rsa -P ""
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

然后我尝试了“ssh localhost”,出了点问题,我又试了一次,它成功了,但是我每次打开iIterm2时都得到了这个。

Last login: Sun Jul 21 16:44:36 on ttys001
You have new mail.
(eval):export:1: not valid in this context: Fusion.app/Contents/Public:/Library/TeX/texbin:/opt/X11/bin:/Users/amber/opt/phantomjs/bin:/Users/amber/opt/adb:/usr/local/android-sdk-macosx//tools:/usr/local/android-sdk-macosx//platform-tools:/usr/local/android-sdk-macosx//build-tools/27.0.3//Library/Frameworks/Python.framework/Versions/3.5/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/Applications/VMware

这是 zsh 脚本的一部分:

# Path to your oh-my-zsh installation.
export ZSH=/Users/amber/.oh-my-zsh
...
eval export PATH="/Users/amber/.pyenv/plugins/pyenv-virtualenv/shims:${PATH}";
export PYENV_VIRTUALENV_INIT=1;
_pyenv_virtualenv_hook() {
  local ret=$?
  if [ -n "$VIRTUAL_ENV" ]; then
    eval "$(pyenv sh-activate --quiet || pyenv sh-deactivate --quiet || true)" || true
  else
    eval "$(pyenv sh-activate --quiet || true)" || true
  fi
  return $ret
};
typeset -g -a precmd_functions
if [[ -z $precmd_functions[(r)_pyenv_virtualenv_hook] ]]; then
  precmd_functions=(_pyenv_virtualenv_hook $precmd_functions);
fi
export PATH="/usr/local/opt/nss/bin:$PATH"

export PATH="$HOME/.jenv/bin:$PATH"
eval "($(jenv init -))"

究竟是什么问题?消息重要吗?任何帮助将不胜感激。

【问题讨论】:

    标签: hadoop ssh zsh zshrc


    【解决方案1】:

    很难不知道错误来自哪个eval

    关于export(配置第4行)之前的第一个,我不明白它为什么在那里。它似乎是$PATH 的常规前缀,通常不需要eval

    关于 jenv 的最后一个评估,他们网站上的行与您的不同,它说:

    eval "$(jenv init -)"
    

    值得更改以防万一。

    它也不会使其无效,但您的$PATH 中有一些您可能想要查看的内容。带有双斜杠的路径(很可能是拼写错误)至少在 Zsh 上有效,但最好确保只有斜杠以防万一。

    你的第一个Fusion.app/Contents/Public 也是一个相对路径。如果您希望它在任何地方都可以工作,则需要放置绝对路径。也许我很困惑,我不明白具体细节,但在这种情况下,只有在包含Fusion.app 的目录中才能找到应用程序。我个人在$PATH 中拥有的唯一相对路径是.,这是第一个方便的路径。

    【讨论】:

    • 感谢您的评论。我终于弄明白了。我升级了与 virtualBox 应用程序版本 (Fusion.app) 不匹配的 macOS 版本并导致了它。我需要做的是删除virtualBox的配置文件,一切都和以前一样完美。
    【解决方案2】:

    对我有用的是删除 /etc/paths.d/com.vmware.fusion.public,在那里查找可能与 (eval):export:1: not valid in this context: Fusion.app/Contents/Public:... 中的条目对应的其他文件

    【讨论】:

      猜你喜欢
      • 2021-05-22
      • 2019-12-14
      • 1970-01-01
      • 2017-08-09
      • 1970-01-01
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多