使用 bash EXIT 陷阱来确认或取消 ctrl+d

thi*_*ive 0 shell bash ssh-tunneling shell-script trap

是否有一种简单的方法可以在注销 shell 之前要求确认,并在拒绝确认时防止 shell 退出?这将有助于避免意外终止用于隧道的 SSH 会话。

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

Kus*_*nda 7

set -o ignoreeof
Run Code Online (Sandbox Code Playgroud)

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

bash外壳将打印

Use "exit" to leave the shell.
Run Code Online (Sandbox Code Playgroud)

如果按Ctrl+D

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

ignoreeof外壳的选择是应该在所有的POSIX般的炮弹可用一个POSIX选项。

有关的:


归档时间:

查看次数:

1079 次

最近记录:

6 年,8 月 前