Bash脚本退出错误(set -e)关闭putty SSH会话

前端之家收集整理的这篇文章主要介绍了Bash脚本退出错误(set -e)关闭putty SSH会话前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用set -e强制我的脚本在运行命令时发生错误退出.
然而,这有关闭我的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)并使用它来解释脚本.定义的函数,变量集和退出处理仅限于新的解释器进程.

猜你在找的Bash相关文章