首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在启动时忽略csh中的信号

问在启动时忽略csh中的信号
EN

Stack Overflow用户
提问于 2013-08-14 14:16:56
回答 1查看 539关注 0票数 2

我对Linux还是相当陌生的,但是我对SSH和PUTTY的概念更新。在我将SSH放入linux盒后,我会发出以下命令:

代码语言:javascript
复制
csh -c 'cd /; set echo off; set term=dumb; set echo on; pwd; csh -i'

除了信号中断(如Ctrl+C )引起的头痛之外,这一切都很好。我做了研究并得出以下结论:

  1. 在csh中,onintr -可以用于阻止给定脚本中的信号。这让我考虑将onintr -放入cshrc :这样,每次运行上面的命令时都会执行它。但是这一行只是本地的一个脚本,所以它不会像我想要的那样产生任何真正的全局效果。
  2. 我发现bash与csh不同,它有trap命令--一个非脚本特定的命令,它将重新定义在整个shell会话中处理某些信号的方式。命令。因此,我尝试启动bash,并修改代码以适应。查看bash手册页,我解释了bash -c的行为方式与csh -c大致相同,因此为了复制上面的命令,我尝试用bash替换csh,并将trap "" 2附加到命令中。

因此,全部命令如下:

代码语言:javascript
复制
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命令?我应该如何实现更好的解决方案?

EN

回答 1

Stack Overflow用户

发布于 2013-10-31 02:01:22

虽然我不完全明白为什么您会使用这样的语句

bash -c‘cd /;set echo off;set term=dumb;set echo on;pwd;bash -i;’

您可以将trap放在bash -i之前,以防止bash -i接收信号,如下所示:

bash -c‘cd /;设置回波关闭;设置term=dumb;设置回波启动;pwd;陷阱“2;bash -i;’

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18234232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档