2017-11-15 18 views
0

프로그램을 stdin에서 읽고 처리해야합니다. (예 : "tee/some/file")expect : 스폰 프로세스에 EOF를 보내는 방법

이 프로그램은 종료하기 위해 stdin end를 기다립니다.

Expect에서 내가 send 많은 콘텐츠를 보낸 후 프로그램에 "EOF"를 보내는 방법은 무엇입니까?

Expect에는 close 명령이 있지만 SIGHUP도 보내고 더 이상 프로그램 출력을 expect 수 없습니다.

+2

나는'send \ x04'가 할 것이라고 생각합니다. 그러면 Ctrl + D가 전송됩니다. –

답변

0

예상 된 프로그램이 실행되는 가상 터미널을 사용하여 (Windows가 아닌 경우) 작동합니다. 즉, 키를 시뮬레이트하기 위해 문자 시퀀스를 전송하여 작업을 수행 할 수 있습니다. 특히 EOF control sequence is done with Ctrl+D은 U + 000004 문자가됩니다. 터미널은 이것을 처리하여 진정한 EOF로 만듭니다.

가 당신이 선호하는 이스케이프 순서에 따라 그것을 쓸 수있는 몇 가지 방법,하지만이 중 하나가 작동합니다

# Hexadecimal-encoded escape 
send \x04 
# Octal-encoded escape 
send \004 
# UNICODE escape (also hexadecimal) 
send \u0004 

때 Expect는 Tcl 8.6을 사용하고 있습니다. 이것들은 모두 같은 바이트 코드를 생성합니다. 당신이 좋아하는 hever.