DD. Asked: 2012-07-09 22:26:40 +0800 CST2012-07-09 22:26:40 +0800 CST 2012-07-09 22:26:40 +0800 CST Bash 脚本错误退出 (set -e) 关闭 putty SSH 会话 772 我正在使用 set -e 强制我的脚本在运行命令时发生错误时退出。然而,这有关闭我用来通过 SSH 连接到主机的 putty 终端窗口的副作用。 如何阻止终端关闭? ssh putty 1 个回答 Voted Best Answer anderbubble 2012-07-09T22:33:49+08:002012-07-09T22:33:49+08:00 你是如何运行脚本的?子进程退出的情况不应影响运行它的外壳......除非您将脚本采购到正在运行的外壳中。 例如... ./my-script.sh # this should terminate and leave your shell intact . my-script.sh # this might terminate and take your shell with it 'nix shell 是一些 shell 解释器(例如,, , bash)的运行进程。“source”脚本(您可以使用命令或其别名执行)告诉解释器打开指定的文件并处理其内容。实际上,脚本成为交互式输入命令的快捷方式。定义的函数、变量集和(在您的情况下)处理的函数在原始 shell 中生效。kshcshbashsource.exit ./my-script.sh是一个简单的文件路径。./引用当前目录和my-script.sh该目录中的脚本。当文件被标记为可执行时,文件将被执行。在脚本的情况下,这意味着启动一个新的解释器进程(由#!脚本顶部的行定义,或者/bin/sh默认情况下)并使用它来解释脚本。定义的函数、设置的变量和exit处理的 s 都被限制在那个新的解释器进程中。
你是如何运行脚本的?子进程退出的情况不应影响运行它的外壳......除非您将脚本采购到正在运行的外壳中。
例如...
'nix shell 是一些 shell 解释器(例如,, ,
bash
)的运行进程。“source”脚本(您可以使用命令或其别名执行)告诉解释器打开指定的文件并处理其内容。实际上,脚本成为交互式输入命令的快捷方式。定义的函数、变量集和(在您的情况下)处理的函数在原始 shell 中生效。ksh
csh
bash
source
.
exit
./my-script.sh
是一个简单的文件路径。./
引用当前目录和my-script.sh
该目录中的脚本。当文件被标记为可执行时,文件将被执行。在脚本的情况下,这意味着启动一个新的解释器进程(由#!
脚本顶部的行定义,或者/bin/sh
默认情况下)并使用它来解释脚本。定义的函数、设置的变量和exit
处理的 s 都被限制在那个新的解释器进程中。