주어진 스트림에서 EOF를 읽을 때 자동으로 종료되는 프로그램이 있습니다 (다음 경우 stdin).
이제 이름이 지정된 파이프를 만들고 프로그램의 표준 입력을 연결하는 셸 스크립트를 만들고 싶습니다. 그런 다음 스크립트는 및 (및 종료시 자동으로 EOF를 생성하는 기타 도구)를 사용하여 파이프에 여러 번 씁니다 . 내가 직면하고있는 문제는 첫 번째 작업이 완료되면 EOF를 파이프로 보내고 프로그램을 종료하는 것입니다. 다음과 같은 것을 사용 하면 프로그램을 종료하려고 할 때 EOF를 보낼 수 없습니다. 균형 잡힌 솔루션을 연구하고 있지만 아무 소용이 없습니다.
EOF를 방지하는 방법과 EOF를 수동으로 전송하는 방법을 이미 찾았지만 조합 할 수는 없습니다. 힌트가 있습니까? echo
cat
echo
tail -f
#!/bin/sh
mkfifo P
program < P & : # Run in background
# < P tail -n +1 -f | program
echo some stuff > P # Prevent EOF?
cat more_stuff.txt > P # Prevent EOF?
send_eof > P # How can I do this?
# fg
exec 3>P
원인 이 bash에 걸려 왜?