C쉘 내부에서 프로그램 파일 구동시 사용자 입력값 방법이 궁금합니다.
글쓴이: ddurami20 / 작성시간: 수, 2016/07/06 - 4:19오후
#!/bin/csh 에서
./ABC.exe 라는 파일을 쉘을 통해 실행을 하면
ABC.exe 프로그램은 사용자 입력값을 4번에 걸쳐 받도록 되어 있습니다.
ex) 1넣고 엔터, 2넣고 엔터, 3넣고 엔터, n넣고 엔터
어떻게 하면 자동으로 4개의 사용자 입력값을 받아서 프로그램이 자동으로 돌아가게 할 수 있을까요?
./ABC.exe 이후 첫번째 입력값을 받는 부분에서 계속 멈춥니다.
전문가여러분의 도움 부탁드립니다.
Forums:
해당 프로그램이 평범하게 표준 입력(stdin)을
해당 프로그램이 평범하게 표준 입력(stdin)을 읽는 식으로 돌아간다면, Here document를 쓸 수 있습니다.
https://en.wikipedia.org/wiki/Here_document
# &lt;<는 <<로 바꿔서 쓰시기 바랍니다.
# EOF는 제가 임의로 선택했을 뿐 다른 문자열로도 가능합니다. 위키 페이지 등 참조.
해당 프로그램이 stdin에 fflush를 호출한다던가 (비표준 동작입니다. -_-) 기타 이유로 반드시 interactive하게 동작시켜야 할 경우에는 일반적으로 expect를 씁니다.
https://en.wikipedia.org/wiki/Expect
잘 이해가 가질 않네요 ^^
잘 이해가 가질 않네요 ^^
먼저 파일에 입력할 내용을 저장해 둡니다.
먼저 파일에 입력할 내용을 저장해 둡니다. (in.txt 라고합시다)
한줄에 모두 써도 될 수도 있고, 위처럼 한줄에 하나씩 엔터로 구분해야할 수도 있습니다.
이제 ABC.exe 를 이렇게 실행해봅시다.
이게 의도한대로 동작하지 않으면 expect 같은 툴을 써야합니다.
이게 잘 동작하면 in.txt 대신 here document 을 쓸 수 있습니다.
heredoc 은 미리 저장된 파일을 사용하는 대신
파일내용을 스크립트내에 저장하는 방법이라고 생각하시면 됩니다.
댓글 달기