0

当有人登录 prod 系统时,我想将配色方案更改为红色。我通过查询我们的中央存储库以获取产品服务器并更新 .kshrc 来实现这一点,如下所示 -

主机= hostname ... ...

使用 $hostname 搜索字符串

如果服务器是 prod,则 env 将设置为 1

if [[ $env = 1 ]] then tput setaf 7 tput setab 1 clear else tput setaf 7 tput setab 4 clear fi

当我远程登录到产品然后再次远程登录到另一个非产品时,这工作正常。但是问题是,例如,当我从非 prod 登录到 prod 系统时,配色方案会按预期更改为红色,但是,如果我使用 ctrl+d 注销,即使我现在已注销,配色方案也不会改变非产品系统。关于如何捕获 SIGQUIT (ctrl+d) 并将其用于颜色更改的任何建议?

4

1 回答 1

-2

我会尝试改写我的答案,因为人们在这里感到困惑......

所以我的建议是使用陷阱命令来捕获信号,然后做你想做的事情。陷阱命令的语法是

trap "command1; command2; command3" signal1 signal2 (您可以在同一行中捕获更多信号)

如果捕获 SIGQUIT 不起作用,请检查您的终端是否确实在 Ctrl+d 上发送了 SIGQUIT

一些可能有用的链接是:

http://www.tutorialspoint.com/unix/unix-signals-traps.htm

http://www.ibm.com/developerworks/aix/library/au-usingtraps/

http://linuxcommand.org/wss0160.php

于 2014-09-15T16:35:21.860 回答