Ctrl-C(SIGINT)는 프로세스가 출력을 시도하는 경우에도 출력이 표시되지 않도록 방지합니까?

Ctrl-C(SIGINT)는 프로세스가 출력을 시도하는 경우에도 출력이 표시되지 않도록 방지합니까?

잘못된 작업을 수행하는 bash 스크립트가 있습니다. 그래서 Ctrl-C를 눌러 중지했습니다.

이제 터미널에 표시되는 출력은 실행 중인 프로세스에서 생성된 모든 출력입니다. Ctrl-C는 무언가를 출력하려는 ​​프로세스가 이미 수행 중인 작업을 실행/완료한 경우에도 출력 인쇄를 방지합니다.

그래서 저는 이렇게 합니다:

for i in *; do rm -vf $i; done

removed 'file'이제 화면의 모든 메시지가 삭제되었으며 다른 메시지는 삭제되지 않았는지 확인할 수 있습니까 ?

관련 정보일 수도 있습니다. 저는 SSH를 통해 스크린 세션에서 작업하고 있습니다.

답변1

본질적으로.

쉘 프로세스가 Ctrl-C인터럽트를 포착한 후 중지합니다.

for그러나 루프의 백그라운드에서 cmd가 실행될 수 있다는 등 몇 가지 주의 사항이 있습니다 .

또한 일부 명령은 너무 빨리 실행되어 셸에서 빠른 응답을 얻지 못합니다(특히원격으로 연결하세요! )가지다또는언제실제로 Ctrl-C를 사용하여 "인터럽트"를 받았습니다.

관련 정보