2012-09-18 8 views
2

내 가장 포괄적 인 프로그램은 셸 스크립트입니다. 이 셸 스크립트는 입력을 파이프해야하는 C 프로그램을 호출하고 궁극적으로 C 프로그램은 셸을 만듭니다. 내가 살아 남기 위해 쉘을 얻을 수 쉘 스크립트셸 명령에 대한 파이프 입력 및 생성 된 셸 유지

Do_Other_Stuff 
./my_prog < file1 

에서 나는 파이프 C 프로그램에 내 입력을 그러나

. 내가 입력 가지고, 단지

Do_Other_Stuff 
./my_prog 

작업을 실행하면 자신을 stdin을하고 종료 my_prog 때 쉘은 제대로 생성합니다. C 프로그램에서 ./my_prog 호출을 마무리하고 컴파일하고 실행하면 좋겠지 만 쉘이 더 깨끗한 방법이 있는지 궁금합니다.

다른 상황에서 cat file1 | ./my_prog을 사용하고 &을 사용하여 몇 가지 조합을 시도했지만 성공하지 못했습니다.

감사합니다.

+0

명령을 완료 한 후 쉘이 대화식 세션을 실행하길 기대합니까? 임시 파일을 사용하고'--rcfile'을 사용하여이를 전달할 수 있습니다. – tripleee

답변

3

시도 :

cat file1 - | ./myprog 

많은 프로그램은 표준 입력을 의미하는 "파일 이름"-을 인식하고 있습니다.

1

C 프로그램 소스 코드에 액세스 할 수 있습니까? 내 생각 엔 C 프로그램이 istty(0)을 사용하여 stdin이 터미널에서 오는 것인지 확인합니다. 이 경우에 대화 형 셸이 생성됩니다. 파일이나 파이프에서 stdin 리다이렉션을 사용하면 istty(0)이 false를 반환한다는 것을 의미합니다.