为什么我的 zsh 在启动时有这些文本?

Why does my zsh have these texts on startup?

前几天我正在安装 RoR,当我打开我的 iterm2 时,它正在启动:

这是我的 .bash_profile

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"

export WORKON_HOME=$HOME/.virtualenv
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenv
alias python='/usr/local/bin/python3'
echo 'export PATH="/usr/local/sbin:$PATH"'
alias q='exit'

echo 'export PATH="/usr/local/sbin:$PATH"'
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export GEM_HOME=~/.ruby

# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export PATH="$PATH:$HOME/.rvm/bin"


export PATH=/Users/highcenoid/gems/bin:/usr/local/opt/sqlite/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/MacGPG2/bin

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

在我的 .zshrc 上:

export PATH=$HOME/bin:/usr/local/bin:$PATH
export ZSH="/Users/user/.oh-my-zsh"
ZSH_THEME="powerlevel9k/powerlevel9k"
DISABLE_AUTO_TITLE="true"
ENABLE_CORRECTION="true"
plugins=(git django npm node pip python yarn brew virtualenv)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status virtualenv)
source $ZSH/oh-my-zsh.sh
export MANPATH="/usr/local/man:$MANPATH"
[[ -f /usr/local/lib/node_modules/serverless/node_modules/tabtab/.completions/serverless.zsh ]] && . /usr/local/lib/node_modules/serverless/node_modules/tabtab/.completions/serverless.zsh
[[ -f /usr/local/lib/node_modules/serverless/node_modules/tabtab/.completions/sls.zsh ]] && . /usr/local/lib/node_modules/serverless/node_modules/tabtab/.completions/sls.zsh
[[ -f /usr/local/lib/node_modules/serverless/node_modules/tabtab/.completions/slss.zsh ]] && . /usr/local/lib/node_modules/serverless/node_modules/tabtab/.completions/slss.zsh
export DEFAULT_USER="$(whoami)"
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
export PATH="$PATH:$HOME/.rvm/bin"

这是我的虚拟环境

#!/usr/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 
'virtualenv==16.4.3','console_scripts','virtualenv'
__requires__ = 'virtualenv==16.4.3'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('virtualenv==16.4.3', 'console_scripts', 
'virtualenv')()
    )

我还需要展示什么?

发生了什么事?

您的 .zshrc 看起来不错,但问题出在您的 .bash_profile 中。 Shell 配置文件只是在 shell 启动时执行的 shell 脚本。在 .bash_profile

这一行
source /usr/local/bin/virtualenv

virtualenv 文件的内容包含在 shell 脚本中(source 就像在其他语言中包含或导入)。并且将任何其他语言源包含到 shell 脚本中总是会导致错误。

为什么?

我不知道virtualenv应该怎么安装和启动,但这显然是错误的。我的第一个猜测是 virtualenv 应该是一个 shell 脚本,但有些东西用 python 内容覆盖了它。或者 - virtualenvs 内容没问题,但不应通过将其采购到 .bash_profile 来启动,而是在那里执行。

好的,但我该如何解决?

如果我的第一个猜测是正确的话,没什么可做的。也许重新安装 virtualenv 相关的东西会有所帮助。

但在第二种情况下 - 将上面提到的 source 行更改为

/usr/local/bin/virtualenv

保存文件,这样就可以了。这告诉不要包含 virtualenv 而是执行它。

PS。导出路径=...

最后两行

export PATH="/usr/local/sbin:$PATH"
export PATH="/usr/local/sbin:$PATH"

出现,因为你的 .bash_profile 又这么说了。有两行:9 和 12

echo 'export PATH="/usr/local/sbin:$PATH"'

echo 就像其他语言的打印一样。所以这告诉 shell 打印一些静态字符串。如果您不喜欢这样,您可以删除这些行或将 # 放在它们前面,以将它们注释掉。