「set -e」を使用するときに子バックグラウンドプロセスが終了したかどうかを確認する方法は?

「set -e」を使用するときに子バックグラウンドプロセスが終了したかどうかを確認する方法は?
set -e

while true; do echo "test"; sleep 1; done &

echo "done"
ueoa

これを実行すると、一度到着するとueoa(存在しない任意のコマンド)「終了」しますが、実行が継続されますwhile true; do echo "test"; sleep 1; done

この場合、フォアグラウンドプロセスも終了したことをどのように確認できますか?

ベストアンサー1

そう:

#!/usr/bin/env bash

trap 'kill $(jobs -p)' ERR

set -e

while true; do echo "test"; sleep 1; done &

echo "done"
ueoa

おすすめ記事