그룹화 명령 내에서 신호 트래핑

그룹화 명령 내에서 신호 트래핑

나는 최근에 이상한 행동을 겪었습니다. 그룹화 명령 내부에서는 트랩이 실행되지 않습니다.

$ cat ./1.sh
#!/usr/bin/env bash
set -eu
trap 'echo exit' EXIT
$ ./1.sh
exit
$ cat ./2.sh
#!/usr/bin/env bash
set -eu
echo test | { trap 'echo exit' EXIT; }
$ ./2.sh

예상대로인가요?

답변1

이것은벌레이는 버전 >4.2.37<=4.3.8. 다음은 관련 정보입니다.변경 내역:

이 문서에서는 이 버전인 bash-4.3-alpha와 이전 버전인 bash-4.2-release 간의 변경 사항을 자세히 설명합니다.

...

sss. 비동기 그룹 명령이 명령 본문에 정의된 EXIT 트랩을 실행하지 못하게 하는 버그를 수정했습니다.

...

으으으. 서브쉘이 자신이 설정한 EXIT 트랩을 실행하지 못하게 하는 문제를 수정했습니다.

관련 정보