Bash機能でトラップを設定するには?

Bash機能でトラップを設定するには?

trapbashスクリプトでは設定できますが、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(これは期待どおりに機能し、トラップを使用します)。

おすすめ記事