콘솔프로그램의 input output 을 가로채고 싶습니다..

임창진의 이미지

제환경은 winXP ,cygwin 이 설치되어있고 expect는 cygwin에서 compile 한 것입니다.

expect를 사용해서 서버에로그인해서 프로그램을 실행 시키고 그결과를 파일로 받아놓고 expect 가 종료되면 그 파일을 파싱해서 제 프로그램(pc에서 실행되는)에서 보여주고 있습니다.

이런일이 자주있다보니까 expect 에서 매번 서버에로그인하고 프로그램실행시키기때문에 속도가 떨어집니다.

expect 가 서버에 로그인한후 대기하다가 제프로그램에서 expect에게 실행할 명령을 넘기고 그결과를 바로 받아볼수있는 방법이 있을까요?

아니면 expect 말고 달리 이와 비슷한일을 처리할수 있는 방법이 있는지 알고싶습니다.

hyperhidrosis의 이미지

popen()

쌀밥의 이미지

expect가 서버에 계속 로그인 된 상태로 동작하고 있고
이 프로세스가 종료되지 않은 상태로
새로운 동작을 추가시킬 수 있는 방법을 찾고 계신것 같은데요..
좋은 아이디어인것 같습니다.

만약 이걸 구현하려면 tcl 명령들을 조합해서, 스크립트 파일을 읽어드리도록 구현해야할것 같습니다.

아니면, expect 가 하는 동작이 일정하게 정해져 있다면
굳이 서버에 접속 -> 명령 수행 -> 접속 종료
를 하지 말고
서버에 접속 -> 명령 수행 -> 대기 -> 명령 수행 -> 대기 -> 명령 수행
이런식으로 하면 안되나요?

어떤 상황이신지 잘 알 수가 없어서.....

그리고 expect 자체가 좀 느린 편입니다..
코드 관리하기도 좀 복잡하고...

rsh 같은 것을 사용해보시면 어떨까 하는 생각도 듭니다...

일하는 사람들의 희망 민주노동당 : http://www.kdlp.org
반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.

익명 사용자의 이미지

hyperhidrosis wrote:
popen()

popen은 단방향(읽기 또는 쓰기)으로만 할 수 있습니다.
좀 .... 그렇지요.
양방향인 경우 pipe, dup 이 좋은 해결로 보입니다.

그리고, 어차피 출력 문자열 보고 뭔가 입력해야하는 대화식 유형이라면, expect같은 것을 사용하던가 또는 만들던가 해야 합니다.

* expect가 느린가요? 그리 느려보이지는 않는데, ......
그러나, 윗 분이 말씀하셨듯이 접속/해제 회수를 줄여보는 방법을 먼저 시도해 보시는게 좋겠습니다.

* 보다 나은 답변은, 때때로, 보다 나은 질문에서 나온다는....

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.