2013-03-28 2 views
2

나는 명령 행 도구를 쓰고있다. 이 도구가 할 수있는 작업 중 하나 (확실하게 고유하지는 않음)는 stdin에서 입력 된 내용으로 읽습니다. 필자는 EOF 신호를 보내는 방법을 알지 못했을 때 대화 형으로 (파일을 입력하는 대신 입력을 입력하여) 테스트를 진행했습니다.Git Bash 터미널에 EOF 신호를 보내려면 어떻게해야합니까?

오늘 밤 엄청난 시간을 들여서 인터넷 검색을 한 결과 도움이되지 않았습니다. 나는 SO를 찾았다. 제게 이중 질문을 가르쳐 주시길 바랍니다. 그러나 나는 실사를했습니다. 약속드립니다.

편집 : Windows에서이 작업을 수행하고 있음을 언급하는 데 도움이 될 수 있습니다 (?). 그래서 나는 터미널이 다소 브랜드화 된 MinGW라고 생각한다.

답변

3

Windows에서 프로그램의 입력으로 EOF를 보내려는 경우 Ctrl-Z을 찾고 있습니다.

+0

나는 그것을 시도했지만 문자 그대로 화면에 "^ Z"를 인쇄한다는 것을 혼란스러워했다. 'Ctrl-C'는 아무 것도 인쇄하지 않고 프로세스를 종료하기 때문에 작동하지 않는다고 가정했습니다. 그러나,'Ctrl-Z '을 실행 한 후에, 그것은 효과가있었습니다. 나를 따라 오는 사람들을위한 메모 :이 줄 끝에서 작동하지 않는 것 같습니다. 그것은 그것의 자신의 줄에있을 필요가있는 것처럼 보일 것입니다. 감사합니다. @ 브렌든. – burfl

1

^D는 ASCII 전송 종료 문자입니다. 모든 GNU-userland 도구는 POSIX 표준을 사용합니다.

+0

Windows의 경우입니까? 방금 GnuWin32의'cat' 명령에^D를 보내려고했는데 아무 것도하지 않았습니다.^Z가 예상대로 고양이를 빠져 나갔습니다. –

+0

^D가 작동하지 않았습니다. 프로그램은이를 읽고이를 리터럴 텍스트 "^ D"로 해석했습니다. – burfl

+0

두 문자 캐럿 -d 시퀀스가 ​​아니라 Ctrl-D입니다. 나는 창문에 git bash를 정기적으로 사용한다. 그래서 나는 이미 그것을 알고 있었다. 나는 단지 쉘에서 그것을 시험해 보았다. 나는 창녀 였기 때문에 대답했다. 그리고 나는 단지'cat'으로 다시 시도했다. 여기서 내가 말할 수있는 것은 "나를 위해 일합니다"입니다. 미안하지만 더 나은 설명이 없습니다. – jthill

관련 문제