C쉘 내부에서 프로그램 파일 구동시 사용자 입력값 방법이 궁금합니다.

ddurami20의 이미지

#!/bin/csh 에서

./ABC.exe 라는 파일을 쉘을 통해 실행을 하면

ABC.exe 프로그램은 사용자 입력값을 4번에 걸쳐 받도록 되어 있습니다.

ex) 1넣고 엔터, 2넣고 엔터, 3넣고 엔터, n넣고 엔터

어떻게 하면 자동으로 4개의 사용자 입력값을 받아서 프로그램이 자동으로 돌아가게 할 수 있을까요?

./ABC.exe 이후 첫번째 입력값을 받는 부분에서 계속 멈춥니다.

전문가여러분의 도움 부탁드립니다.

익명 사용자의 이미지

해당 프로그램이 평범하게 표준 입력(stdin)을 읽는 식으로 돌아간다면, Here document를 쓸 수 있습니다.

https://en.wikipedia.org/wiki/Here_document

% cat << EOF
> abc
> def
> EOF
abc
def
% tr a-z A-Z << EOF
> hello world
> wow!
> EOF
HELLO WORLD
WOW!

# &amplt;<는 <<로 바꿔서 쓰시기 바랍니다.
# EOF는 제가 임의로 선택했을 뿐 다른 문자열로도 가능합니다. 위키 페이지 등 참조.

해당 프로그램이 stdin에 fflush를 호출한다던가 (비표준 동작입니다. -_-) 기타 이유로 반드시 interactive하게 동작시켜야 할 경우에는 일반적으로 expect를 씁니다.

https://en.wikipedia.org/wiki/Expect

익명 사용자의 이미지

잘 이해가 가질 않네요 ^^

qiiiiiiiip의 이미지

먼저 파일에 입력할 내용을 저장해 둡니다. (in.txt 라고합시다)

$ cat in.txt
1
2
3
n

한줄에 모두 써도 될 수도 있고, 위처럼 한줄에 하나씩 엔터로 구분해야할 수도 있습니다.
이제 ABC.exe 를 이렇게 실행해봅시다.
ABC.exe < in.txt

이게 의도한대로 동작하지 않으면 expect 같은 툴을 써야합니다.
이게 잘 동작하면 in.txt 대신 here document 을 쓸 수 있습니다.
heredoc 은 미리 저장된 파일을 사용하는 대신
파일내용을 스크립트내에 저장하는 방법이라고 생각하시면 됩니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.