trap
bashスクリプトでは設定できますが、bash関数では設定できません。
source
以下のコードを入手して実行してくださいf
。今Ctrl+を試してくださいC。止まらない!
Bash機能でどのようにtrap
設定しますか?
4 trap ctrl_c INT
5
6 ctrl_c () {
7 echo "** Trapped CTRL-C"
8 }
9
10
11 f () {
12 for i in `seq 1 100`; do
13 sleep 1
14 echo -n "."
15 done
16 }
ベストアンサー1
bash
これは、実行中のスクリプトの代わりにSIGINTをフォアグラウンドプロセスに送信するためです。これを行うには、関数を非同期にしてから使用しますwait
(これは期待どおりに機能し、トラップを使用します)。