该bashrc不是我写的,和来源有很多不同的配置文件。采购它后,我不能再用Ctrl+退出 bash D。
我发现了这个关于 zsh 的相关问题,我想知道用于对 bash 执行相同操作的机制。
在登录 shell 中键入Ctrl+D时,我得到:
使用“注销”离开外壳。
在非登录 shell 中时,
使用“exit”离开外壳。
由于这些消息根据使用的语言环境进行翻译,因此这可能不是系统脚本。如果可能,我想独立控制两者(例如,为非登录 shell 禁用此功能)。那可能吗?
如果设置了 bash 变量或 shell 选项,请查看您的配置:
(Bash 参考手册中的第 5.2 节)
IGNOREEOF控制外壳在接收到作为唯一输入的 EOF 字符时的操作。如果设置,该值表示在 shell 退出之前可以作为输入行第一个字符读取的连续 EOF 字符数。如果变量存在但没有数字值(或没有值),则默认值为 10。如果该变量不存在,则 EOF 表示对 shell 的输入结束。这仅对交互式 shell 有效。
例如 IGNOREEOF=2
set允许您更改 shell 选项的值
(Bash 参考手册中的第 4.3.1 节)
-o ignoreeof读取 EOF 时,交互式 shell 不会退出。
如果可能,我想独立控制两者(例如,为非登录 shell 禁用此功能)。那可能吗?
是的。您获取的脚本应该检查 shell 是否是登录 shell并相应地设置变量,如下所示:
if shopt -q login_shell; then IGNOREEOF=10; else IGNOREEOF=0; fi
Run Code Online (Sandbox Code Playgroud)
请注意,10仍然允许您使用Ctrl+离开外壳D;你只需要连续画 11 下就可以了。