2011-12-15 11 views
0

シェルスクリプトでコントロールc、コントロールzを読み取る方法は?事前シェルスクリプトでエスケープ文字を読み取る方法は?

追加

おかげで...

は私の要件は、スクリプトの終了時にファイルを削除、イム何をしていましたさ。スクリプトが(コントロールcまたはコントロールzによって)停止している場合、そのファイルを削除する必要があります。

+0

あなたの問題は何ですか? – pmod

+0

以下の回答(@holygeekと@Jonathanによる)は、C-cとC-zによって生成されたシグナルを捕まえて、あなたのスクリプトで何かしたいと思っていますか?これは正しいです?もしそうでなければ、それらを入力として実際に読んでみたいのですが、答えは全く異なります。可能であれば、あなたの質問を明確にするのに役立ちます。 –

+0

私の必要条件は、スクリプトの最後にファイルを削除することでした。スクリプトが(コントロールcまたはコントロールzによって)停止していた場合でも、私はそのファイルを削除する必要があります.. – John

答えて

1

ユーザーがコントロールc(または他の特別な組み合わせ)を行うたびに、シグナルがスクリプトに送信されます。

この信号は、trapコマンドを使用してスクリプトでキャプチャする必要があります。

それは説明するのは長いですが、このウェブは信号の管理についての良い説明含まれていますSIGNALSセクションで説明フィールドに注意してください、あなたがそこに置くことができます許可信号のリストについては、読むman killhttp://linuxcommand.org/wss0160.php

1
#!/bin/sh 
trap 'echo Hi there' INT USR1 TERM 

while true; do sleep 1; done 

killのマニュアルページには、シェルスクリプトによってどの信号をブロック(トラップ)できるのかが記述されています。

注:Ctrl + cはINT(割り込み)信号です

関連する問題