我正在使用set -e强制我的脚本在运行命令时发生错误时退出.
然而,这有关闭我的putty终端窗口的副作用,我用来通过SSH连接到主机.
然而,这有关闭我的putty终端窗口的副作用,我用来通过SSH连接到主机.
如何阻止终端关闭?
你是如何运行脚本的?子进程退出的情况不应该影响运行它的
shell …除非您将脚本提供给正在运行的shell.
例如…
./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,ksh,csh). “源”一个脚本(您可以使用命令源或其别名在bash中执行.)告诉解释器打开指定的文件并处理其内容.实际上,该脚本成为以交互方式输入命令的快捷方式.定义的函数,变量集和(在您的情况下)退出处理在原始shell中生效.
./my-script.sh是一个简单的文件路径. ./将当前目录和my-script.sh引用到该目录中的脚本.当文件标记为可执行文件时,将执行该文件.对于脚本,这意味着启动一个新的解释器进程(由脚本顶部的#!行定义,或默认为/ bin / sh)并使用它来解释脚本.定义的函数,变量集和退出处理仅限于新的解释器进程.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。