Da die dritte Falle in einer Subshell erstellt wird, wird es auch aktiviert / ausgeführt werden, wenn dass Shell beendet, versucht, die dritte Datei zu entfernen, bevor es erstellt worden ist. Daher ist die dritte Datei vorhanden, nachdem das Skript fertig ist.
Jedes Mal, wenn trap […] SIGNAL
Sie die Falle für dieses Signal überschreiben, überlebt nur die zweite Falle in der oberen Schale. Daher ist die erste Datei vorhanden, nachdem das Skript fertig ist.
Ein echo
in der Falle oder set -o xtrace
würde Ihnen vielleicht besser zeigen, was los ist. Sie können auch trap
alleine laufen, um zu sehen, welche Fallen aktiv sind.