我编写了一个远程 shell 工具,其工作原理类似于“中继 ssh”。它可以配置为/bin/bash
在/bin/login
用户连接到远程服务器时运行。
我发现了一个奇怪的问题:如果它运行/bin/bash
,CTRL-C
将不起作用,例如,如果我运行tail -f /var/log/syslog
,然后点击CTRL-C
,它不会终止tail
,而只是^C
在屏幕上回显。
但是,如果运行/bin/login
,CTRL-C
则一切正常。如何才能让它在直接运行 BASH 时也能正常工作?
编辑
我使用 启动了 bash -i
,然后它就可以正常工作了。如果我提供-l
,它仍然不起作用。从 BASH 的手册页中,我只看到如何在交互的模式,以及在该模式下加载什么文件。但没有解释什么是交互模式,以及 bash 在交互模式和非交互模式下的不同功能,或者更根本的是,为什么 bash 中有两种模式,目的是什么??