2

私はまだ Linux にかなり慣れていませんが、SSH と PUTTY の概念についてはさらに新しいです。Linux ボックスに SSH 接続した後、次のコマンドを実行します。

csh -c 'cd /; set echo off; set term=dumb; set echo on; pwd; csh -i'

これは、Ctrl + C などの信号割り込みによって引き起こされる頭痛を除けば、すべて問題ありません。私は調査を行い、次の結論に達しました。

  1. csh ではonintr -、特定のスクリプトでシグナルをブロックするために使用できます。これにより、cshrc ファイルに入れることを考えonintr -ました。そうすれば、上記のコマンドを実行するたびに実行されます。しかし、その行は 1 つのスクリプトに対してのみローカルであるため、私が望んでいたような実際のグローバル効果はありません。

  2. csh とは異なり、bash には trap コマンドがあります。これは、シェル セッション全体で特定のシグナルを処理する方法を再定義する、スクリプト固有ではないコマンドです。指図。そこで、代わりに bash を起動して、コードを修正してみました。bash の man ページを見て、上記のコマンドを複製するbash -cのとほぼ同じように動作すると解釈しcsh -c、コマンドに置き換えcshbash追加しようとしtrap "" 2ました。

したがって、完全なコマンドは次のようになります。

bash -c' cd /; set echo off; set term=dumb; set echo on; pwd; bash -i; trap "" 2'

しかし、少なくともこの例では、bash -c必ずしも のように動作するとは限りません。csh -c


この問題を解決する方法について、私は意見が分かれています。デフォルトでシェルに Ctrl+C を無視させるにはどうすればよいですか? onintr -cshrc に入れるべきですか?それとも、bash を使用して trap コマンドを実行したほうがよいでしょうか? より良いソリューションを実装するにはどうすればよいですか?

4

1 に答える 1