쉘 스크립트 내에서 대화형 sh 세션을 실행하려고 할 때 몇 가지 문제가 있습니다. 내부 sh 프로세스는 모든 CPU를 사용하며 절대 종료되지 않습니다.
문제를 재현하려면 다음 내용이 포함된 "script.sh"라는 파일을 생성하세요.
sleep 10 | sh -i | sleep 10 &
다음 명령을 사용하여 실행하십시오.
sh script.sh
sleep 명령은 단지 자리 표시자일 뿐이며 입력을 sh -i로 연결하고 해당 출력을 처리하는 다른 명령이 있습니다. 이것이 매우 이상한 설정이라는 것을 알고 있지만 대화형 셸을 사용할 수 있다면 더 좋을 것입니다. 이 시점에서는 무슨 일이 일어나고 있는지 궁금하고 이해하고 싶습니다.
답변1
내부 쉘은 대화형이 아닙니다. -i
플래그를 제거하면 더 이상 작동하지 않습니다.
바라보다고아 프로세스 그룹에서 대화형 쉘은 무엇을 해야 합니까?뒤에서 무슨 일이 일어나는지 설명하세요.