私はまだ Linux にかなり慣れていませんが、SSH と PUTTY の概念についてはさらに新しいです。Linux ボックスに SSH 接続した後、次のコマンドを実行します。
csh -c 'cd /; set echo off; set term=dumb; set echo on; pwd; csh -i'
これは、Ctrl + C などの信号割り込みによって引き起こされる頭痛を除けば、すべて問題ありません。私は調査を行い、次の結論に達しました。
csh では
onintr -
、特定のスクリプトでシグナルをブロックするために使用できます。これにより、cshrc ファイルに入れることを考えonintr -
ました。そうすれば、上記のコマンドを実行するたびに実行されます。しかし、その行は 1 つのスクリプトに対してのみローカルであるため、私が望んでいたような実際のグローバル効果はありません。csh とは異なり、bash には trap コマンドがあります。これは、シェル セッション全体で特定のシグナルを処理する方法を再定義する、スクリプト固有ではないコマンドです。指図。そこで、代わりに bash を起動して、コードを修正してみました。bash の man ページを見て、上記のコマンドを複製する
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
この問題を解決する方法について、私は意見が分かれています。デフォルトでシェルに Ctrl+C を無視させるにはどうすればよいですか? onintr -
cshrc に入れるべきですか?それとも、bash を使用して trap コマンドを実行したほうがよいでしょうか? より良いソリューションを実装するにはどうすればよいですか?