起初这有点好笑,就像玩“Bash Roulette”……但现在它变老了,哈哈
我的终端中以非零代码退出的任何命令都会关闭我的终端窗口
有人告诉我,也许我set -e
在终端来源的某个地方设置了一些 bash 脚本。
我已经检查过.bash_profile
// .bashrc
,.profile
它看起来不像set -e
在里面。
还有其他明显的罪魁祸首吗?
起初这有点好笑,就像玩“Bash Roulette”……但现在它变老了,哈哈
我的终端中以非零代码退出的任何命令都会关闭我的终端窗口
有人告诉我,也许我set -e
在终端来源的某个地方设置了一些 bash 脚本。
我已经检查过.bash_profile
// .bashrc
,.profile
它看起来不像set -e
在里面。
还有其他明显的罪魁祸首吗?
好吧,确实是一个任性
set -e
给我惹了麻烦。我发现的方式
set -e
是使用bash -lx
最好的办法是使用:
bash -lx > lx.log 2>&1
然后打开该日志文件并搜索
set
...一旦你发现那个任性,
set -e
你可以删除那条线,你的问题应该消失了!(机器重启可能是个好主意)。就我而言,它
set -e
位于 .bash_profile 来源的文件中,但该行不在 .bash_profile 本身中。如果您只是想解决问题,
set +e
请在结尾.bashrc
处包含- 。你可以去挖掘——可能还有很多其他的地方
set -e
——但这会解决很多问题。但是,如果它
set -e
是您的一部分,$PROMPT_COMMAND
则上述内容将不起作用。试着printf '%s\n' "$PROMPT_COMMAND"
看看里面有什么。