답변:
왜냐하면 bash
스크립트를 실행하는 대신 SIGINT를 포 그라운드의 프로세스로 전송하기 때문 입니다. 이 작업을 수행하려면 함수를 비동기로 만든 다음 사용하십시오 wait
(예상대로 작동하고 트랩을 사용함).
f
파이프에 있으면 echo 123 | f
트래핑되지 않는다는 것을 알았 습니다.
(command | command) &
함수를 전역으로 만들어야한다고 생각합니다.
#!/bin/bash
trap ctrl_c INT
ctrl_c () {
echo "** Trapped CTRL-C"
}
for i in `seq 1 100`; do
sleep 1
echo -n "."
done
INT
및 SIGINT
동의어입니다 - 그것은 마찬가지입니다.
f
코드 끝에를 넣고 에 공백을 제거 할 수 있습니다f ()
.