EXITトラップで開始されたバックグラウンドジョブの名前が正しくありません。

EXITトラップで開始されたバックグラウンドジョブの名前が正しくありません。

次のスクリプト:

#!/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 &

ベストアンサー1

おすすめ記事