有没有一种简单的方法可以在退出 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 中可用。
有关的: