2013-02-05 4 views

答えて

7

それはあなたが捕捉することができますが、CTRL-Cは、少なくともそれらの、

まあ:-)トラップ信号に内蔵のtrapbashを使用することができ、多くのショックとして来るかもしれないが、通常INT信号に関連付けられています。シグナルをトラップして任意のコードを実行できます。

次のスクリプトでは、テキストを入力して返信するように求められます。ひょっとする場合は、あなたがINT信号を生成し、それは単にあなたと出口にうなり声:

#!/bin/bash 

exitfn() { 
    trap SIGINT    # Restore signal handling for SIGINT 
    echo; echo 'Aarghh!!' # Growl at user, 
    exit      # then exit script. 
} 

trap "exitfn" INT   # Set up SIGINT trap to call function. 

read -p "What? "    # Ask user for input. 
echo "You said: $REPLY" 

trap SIGINT     # Restore signal handling to previous before exit. 

試運転転写物は、(完全に入力されたライン、任意のエントリの前にCTRL-Cを押すと行、および行を次のCTRL-Cを押す前の部分入力):

pax> ./testprog.sh 
What? hello there 
You said: hello there 

pax> ./testprog.sh 
What? ^C 
Aarghh!! 

pax> ./qq.sh 
What? incomplete line being entere... ^C 
Aarghh!! 
3

trapは、Ctrl-Cを押したときに生成されるSIGINTを含むスクリプト内の信号を捕捉するために使用されます。

+0

+1これは、スクリプトをチェーンする論理演算子を提案しようとしていました。 – slezica

関連する問題