次のスクリプト:
#!/bin/bash
set -m
atexit() {
sleep 1 &
jobs
}
trap atexit EXIT
echo Hello world
次の出力が生成されます。
$ bash ./foo.sh
Hello world
[1]+ Running echo Hello world &
echo Hello world &
なぜ代わりにバックグラウンドジョブの名前が使用されますかsleep 1 &
?