使用 bash EXIT trap 确认或取消 ctrl+d

使用 bash EXIT trap 确认或取消 ctrl+d

有没有一种简单的方法可以在退出 shell 之前要求确认,并在确认被拒绝时阻止 shell 退出?这对于避免意外终止用于隧道的 SSH 会话很有用。

问题trap ... EXIT是完成陷阱后它仍然存在。迄今为止我发现的最有希望的解决方案描述于使用陷阱确认退出,其中讨论了 ctrl+c 但似乎可以使其适用于 ctrl+d。

答案1

set -o ignoreeof

这将导致交互式 shell 忽略EOF( Ctrl+D)。

shellbash会打印

Use "exit" to leave the shell.

如果你按Ctrl+D.

您还可以将 shell 变量设置IGNOREEOF为某个正整数值。该值决定了Ctrl+D在 shell 实际退出之前必须按多少次。这样做set -o ignoreeof的效果bash是相同的设置IGNOREEOF=10(反之亦然)。

shellignoreeof选项是一个 POSIX 选项,应该在所有类似 POSIX 的 shell 中可用。

有关的:

相关内容