ソケットの読み取りループ内で SIGINT ctrl+c をキャッチしようとしましたが、要求しているブレークは新しい行の後にのみ処理されます。そのため、実行中のアプリを ctrl+c すると、新しい行がソケットに到着するのを待たなければループが中断されず、アプリが終了しません。
これは最小バージョンです:
trap "break" SIGINT SIGHUP SIGTERM
exec 3<>/dev/tcp/192.168.1.84/50885
while read line
do
echo -e "$line\n"
done <&3
ループをすぐに中断してアプリを終了するにはどうすればよいですか?