Linux 启动时忽略csh中的信号
我对Linux还是相当陌生,但对SSH和PUTTY的概念我甚至还比较新。在SSH进入linux机箱后,我发出以下命令:Linux 启动时忽略csh中的信号,linux,bash,shell,signals,csh,Linux,Bash,Shell,Signals,Csh,我对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文件中:这样每次运行上述命令时都会执行它。但这一行只是一个脚
csh -c 'cd /; set echo off; set term=dumb; set echo on; pwd; csh -i'
这一切都很好,除了信号中断引起的头痛,比如Ctrl+C。我做了研究,得出了以下结论:
onintr-
可用于阻止给定脚本中的信号。这让我考虑将onintr-
放入cshrc文件中:这样每次运行上述命令时都会执行它。但这一行只是一个脚本的局部,所以它不会像我想要的那样产生任何真正的全局效果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命令?我应该如何着手实施更好的解决方案?尽管我不完全明白为什么您会使用这样的语句
bash-c'cd/;设置回声;设置术语=哑;设置回声;pwd;bash-i;'
您可以在bash-i
之前放置trap
,以防止bash-i
接收信号,如下所示:
bash-c'cd/;设置回声;设置术语=哑;设置回声;pwd;陷阱“”2;bash-i;'
onintr和trap应该尽早启动,否则它将一事无成(您在ssh关闭之前编写),谢谢您的回复。具体来说,我们使用PLINK创建SSH会话;它是中断本身的最终处理程序。你能不能更具体一点,说明在哪里可以建立和/或给出一个例子?