我.zshrc
在使用oh-my-zsh时遇到了文件问题。最近,我开始尝试更加小心地处理我的基本操作系统环境,所以我安装了 Python(2 和 3)并pyenv
使用homebrew。在尝试为 pyenv 配置自动完成功能时,我在 oh-my-zsh 中打开了 pyenv 插件。
这导致我的 shell 在启动期间关闭。我发现我可以通过注释掉 pyenv oh-my-zsh 插件的大部分活动部分来防止这种情况发生,但我不确定为什么会导致 shell 退出。
为了使这个问题尽可能简洁,我想知道以下函数的作用:
if [ -d $pyenvdir/bin -a $FOUND_PYENV -eq 0 ]
插件的完整代码如下:
_homebrew-installed() {
type brew &> /dev/null
}
_pyenv-from-homebrew-installed() {
brew --prefix pyenv &> /dev/null
}
FOUND_PYENV=0
pyenvdirs=("$HOME/.pyenv" "/usr/local/pyenv" "/opt/pyenv")
if _homebrew-installed && _pyenv-from-homebrew-installed ; then
pyenvdirs=($(brew --prefix pyenv) "${pyenvdirs[@]}")
fi
for pyenvdir in "${pyenvdirs[@]}" ; do
if [ -d $pyenvdir/bin -a $FOUND_PYENV -eq 0 ] ; then
FOUND_PYENV=1
export PYENV_ROOT=$pyenvdir
export PATH=${pyenvdir}/bin:$PATH
eval "$(pyenv init --no-rehash - zsh)"
function pyenv_prompt_info() {
echo "$(pyenv version-name)"
}
fi
done
unset pyenvdir
if [ $FOUND_PYENV -eq 0 ] ; then
function pyenv_prompt_info() { echo "system: $(python -V 2>&1 | cut -f 2 -d ' ')" }
fi
据我所知,它是这样的:
bin
检查其中一个 pyenvdirs ( ) 中是否有目录-d $pyenvdir/bin
,???? (-a
),检查我们之前是否已经找到pyenv
($FOUND_PYENV -eq 0
)。
我尝试搜索 zsh 文档,但我无法弄清楚它在-a
做什么。它是否像 AND 语句一样简单?如果是这样,为什么我的外壳会崩溃?有没有一种简单的方法可以将 shell 输出推送到日志文件(在 OS X 上),或者这已经完成了,我只是不知道去哪里看?