Shell 脚本在退出时关闭 iterm2

Shell script closes iterm2 on exit

我需要一些帮助: (在 macOS 上,bash shell)

如果我 运行 一个 .sh 文件调用例如exit 1(任何退出代码)我的终端会话结束(并且 iterm2 tab/window 关闭)。 我这样调用脚本 $ . myscript.sh

我很确定它不应该是这样的,或者之前一段时间不是这样的。

使用:

. myscript.sh

您实际上是在现有 shell 中 运行 脚本或“采购”脚本。在脚本末尾使用 exit,这意味着终端会话也将退出

或者:

./myscript.sh

bash myscript.sh

将 运行 脚本放在单独的 bash shell 中并阻止终端会话退出。

您可以 运行 ./myscript.sh 而不是 . myscript.sh,这将 运行 它放在单独的 bash shell 中并且不会退出当前会话。

如果您控制了这个 .sh 文件的内容,并且您确实想要源脚本 - 只需 return 1 而不是 exit 1,并使用适当的错误处理。