내 관찰 내용을 적절하게 설명하는 문서를 찾을 수 없습니다. 다음 코드를 실행한 후 kill -SIGINT $my_pid
다른 셸에서 실행합니다. 처음 두 번은 정확하게 볼게요 #### received trap 2
. 그러나 wait
명령은 모든 신호에서 중단됩니다. 왜?
#!/bin/bash
for s in {0..64}
do
trap "echo '#### received trap $s'" $s
done
./code &
pid=$!
my_pid=$$
wait $pid
wait $pid
답변1
Bash가 내장 함수를 통해 비동기 명령을 기다릴 때
wait
트랩 세트가 있는 신호를 수신하면 대기 내장 함수가 128보다 큰 종료 상태로 즉시 반환된 다음 트랩을 즉시 실행하게 됩니다.