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