Bash Zshell以错误开头(显示在Powerline9k主题中)

Bash Zshell以错误开头(显示在Powerline9k主题中),bash,zsh,oh-my-zsh,powerline,Bash,Zsh,Oh My Zsh,Powerline,最近我安装了Zshell而不是Bash。在这期间,我看到我的$PATH有7英里长,所以我决定尝试清理一下。当我卸载rvm(通过运行rvm introde,然后运行rm-rf~/.rvm)然后重新启动终端时,我现在看到一个错误: 如果我只需按ENTER键,则错误仍然存在。但是如果我执行任何其他命令,那么它就会消失(ls,echo,source~/.zshrc-你可以说出来) 如果我重新启动iTerm(或启动一个新选项卡),则错误会再次出现 没有显示错误,-因此如果我激活另一个主题,那么我看不出

最近我安装了Zshell而不是Bash。在这期间,我看到我的
$PATH
有7英里长,所以我决定尝试清理一下。当我卸载
rvm
(通过运行
rvm introde
,然后运行
rm-rf~/.rvm
)然后重新启动终端时,我现在看到一个错误:

如果我只需按ENTER键,则错误仍然存在。但是如果我执行任何其他命令,那么它就会消失(
ls
echo
source~/.zshrc
-你可以说出来)

如果我重新启动iTerm(或启动一个新选项卡),则错误会再次出现

没有显示错误,-因此如果我激活另一个主题,那么我看不出是否有错误

我的直觉告诉我,这与我的道路有关,但我不确定。我的路径比安装RVM之前短了很多

如果我重命名我的
~/.zshrc
-文件,那么
Powerline9k
-主题将被停用,因此我看不出错误是否仍然出现。但是我试过了。。。然后一个没有主题的zshell就开始了

知道如何修复或调试它吗

编辑


我刚刚意识到它实际上可能是一个遗留错误,从我运行bash的时候开始,-所以我也添加了这个标记

卸载所有使用该路径的应用并重新安装。这是唯一的办法。您应该创建一个带有垃圾桶的别名,而不是rm

看看他们在github上的文档,相关的片段是

解决方案:

~/.zshrc
中找到名为
POWERLEVEL9K\u LEFT\u PROMPT\u元素的变量
并删除
rbenv

说明:


POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
的默认值是
(context dir rbenv vcs)
,并且很可能
rbenv
是产生错误的段-在卸载
rvm
后,该段无法执行。

如果执行任何命令后视觉缺陷立即消失,只要在
.zshrc
末尾放置一个
echo-n
,作为一个快速简便的修复方法,如果您无法完成调试任务,并且可能会在您的机器上造成更多问题的话

这个问题不值得你花时间;)

编辑:显然上述方法不起作用。见评论

如果您对调试感兴趣,一个好的起点是将
set-xe
(打印正在执行的每一行,并在退出非零的任何一行上中止)放在启动新交互式shell时执行的每个配置脚本的开头(在shebang行之后,或作为shebang中的标志)


还考虑<代码> SET-XUEO PIPPERING 以捕获和中止unShell变量的使用和返回非零内部管道的命令(例如<代码> SET-E/COD>)不会在<代码>假真/<代码>上中止,因为整个行退出状态>代码> 0 ,但是<代码> -O PiPultEuth/<代码>将在这样的行上中止。值得注意的是,这些标志是

bash
功能,但由于
zsh
bash
的功能超集,它们也在
zsh
中工作。

这是“安全”的方法-是的。但是,有一个终端可以告诉我有某种错误,但不是错误是什么,这让我很恼火。因此,我宁愿找出,如何“解释”我的终端告诉我的,而不是用它的根把它撕下来,重新种植,希望它再也不会做这样的事情……好的猜测,-但那不是它。我尝试删除所有的
提示元素,但没有删除左侧和右侧(除了
状态
),它仍然给了我错误。
echo-n
没有为我解决问题(也没有解决
echo-n'\n'
)。我试着在我的
.zshrc
-文件中插入
set-xe
,这太棒了!我可以在第二行看到,它写道:
上次登录:8月10日星期四21:45:40在ttys000+/Users/[USERNAME]/.zlogin:2>[[-s/Users/[USERNAME]/.rvm/scripts/rvm]]
。。。我在哪里能找到,那是从哪里来的?该目录已不存在(即
.rvm
目录)。我试着运行一个
grep-nr'rvm'/*
,但没有找到任何我可以使用的东西…@Zeth该行测试该文件是否存在并且大小是否大于零,并且由于它在您的计算机上不再存在,它将返回一个非零退出代码,这是您的电源线检测到的。@Zeth我没有使用ruby的经验,但我猜是
rvm
安装程序将其插入了
.zlogin
文件中。只需从
.zlogin
中删除该行即可解决问题!你是对的!!通过运行
grep-nr'.rvm/scripts/rvm'/*
,我可以看出是Dreamweaver负责这个调用。我不会再犯错误了!很高兴我能帮忙,谢谢你的赏金!如果您将来遇到shell脚本的任何问题,这些调试标志肯定非常有用。