0

誰かが製品システムにログインしたときに配色を赤に変更したいと考えています。これは、本番サーバーの中央リポジトリにクエリを実行し、以下のように .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 コマンドを使用することでした。トラップ コマンドの構文は次のとおりです。

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 に答える