我对 Linux 还很陌生,但我对 SSH 和 PUTTY 的概念还是比较陌生。在我 SSH 进入一个 linux 机器后,我启动了以下命令:
csh -c 'cd /; set echo off; set term=dumb; set echo on; pwd; csh -i'
这一切都很好,除了信号中断引起的头痛,例如 Ctrl+C。我做了研究,得出以下结论:
在 csh 中,
onintr -
可用于阻止给定脚本中的信号。这让我开始考虑放入onintr -
cshrc 文件:这样每次我运行上述命令时都会执行它。但是该行仅对一个脚本来说是本地的,因此它不会像我想要的那样产生任何真正的全局效果。我发现 bash 与 csh 不同,它有 trap 命令——一个非脚本特定的命令,它将重新定义在整个 shell 会话期间如何处理某些信号。命令。所以我尝试启动 bash 并修改代码以适应。查看 bash 手册页,我解释它的
bash -c
行为方式与复制上述命令的方式大致相同csh -c
,我尝试替换csh
为并附bash
加到trap "" 2
该命令。
因此,完整的命令将是:
bash -c' cd /; set echo off; set term=dumb; set echo on; pwd; bash -i; trap "" 2'
但bash -c
不一定表现得像csh -c
,至少在这种情况下。
我对如何解决这个问题感到矛盾。如何让 shell 默认忽略 Ctrl+C? 我应该放入onintr -
cshrc 吗?还是我最好使用 bash 并运行 trap 命令?我应该如何实施更好的解决方案?