[C쉘] 급합니다 ㅜㅜ 키보드 입력을 쉘중간에 삽입할때

dogspy의 이미지

초보이고요 ^^

쉘은 순차적으로 실행되는걸로 알고 있는데

쉘을 실행하면서 중간에 키보드 q를 누른것과 같은 효과를

내야하는데... 멀 써야되는지 모르겠네요 ㅜㅜ

출력을 하려는게 아니라 키보드q를 누르는것과 같은

효과를 내는 쉘의 예문을 알고 싶어요.

cronex의 이미지

dogspy wrote:
초보이고요 ^^

쉘은 순차적으로 실행되는걸로 알고 있는데

쉘을 실행하면서 중간에 키보드 q를 누른것과 같은 효과를

내야하는데... 멀 써야되는지 모르겠네요 ㅜㅜ

출력을 하려는게 아니라 키보드q를 누르는것과 같은

효과를 내는 쉘의 예문을 알고 싶어요.


입력하실 문자를 넣어둔 파일을 하나 만드시고 (일단 q.txt라고 해놓죠.)

셀 실행 도중 실행할 명령어 뒤에다가 <q.txt를 붙이세요.

즉 a.out을 실행시킨다고 하면

./a.out < q.txt 하시면 되겠습니다.

------------------------------------------------------------
이 멍청이~! 나한테 이길 수 있다고 생각했었냐~?
광란의 귀공자 데코스 와이즈멜 님이라구~!

dogspy의 이미지

1 #!/bin/csh
2
3 echo `top -i` > a.dat
4 echo `killall top`
5 set a = `cat< a.dat`
6 sleep 1
7 echo aaaaaaaaaaaaa
8
9 echo $a
10

사실은 이런 소스인데 이거 실행하고 한 2초뒤에 q가 입력이 되면 되는건데

csh tio2.csh < q.txt 를 했더니

top: tcgetattr() failed: 장치에대한 부적절한 ioctl
top: no process killed

aaaaaaaaaaaaa

이렇게 오류가 발생하는군요 .ㅜㅜ;.... 왜 안되지

cronex의 이미지

dogspy wrote:
1 #!/bin/csh
2
3 echo `top -i` > a.dat
4 echo `killall top`
5 set a = `cat< a.dat`
6 sleep 1
7 echo aaaaaaaaaaaaa
8
9 echo $a
10

사실은 이런 소스인데 이거 실행하고 한 2초뒤에 q가 입력이 되면 되는건데

csh tio2.csh < q.txt 를 했더니

top: tcgetattr() failed: 장치에대한 부적절한 ioctl
top: no process killed

aaaaaaaaaaaaa

이렇게 오류가 발생하는군요 .ㅜㅜ;.... 왜 안되지


일단 쉘에다 그렇게 입력하시면 q.txt는 가장 처음 실행되는 top에 표준입력을 대체 하므로 문제가 되는 거 같구요.

아무튼 쉘 내용을 보아하니...
top를 한번만 반복하고 싶으신거 같은데요.
top에 -n 1 옵션을 줘 보세요.
그러면 한번만 반복됩니다. -b옵션을 주시면 전체화면형식이 아닌 그냥 주르륵 올라가는 형식으로 출력되서 보기 좋습니다.

------------------------------------------------------------
이 멍청이~! 나한테 이길 수 있다고 생각했었냐~?
광란의 귀공자 데코스 와이즈멜 님이라구~!

쌀밥의 이미지

cronex님께서 말씀하신 방법으로 해결 되실것 같네요.

참고로 한가지 적자면..

cat < q.txt 와 같은 방법으로 표준 입력을 바꿀때에는
'몇 초 뒤에 키 입력이 되도록' 하는 것이 불가능합니다.

만약 그런 기능이 필요한 경우에는 expect 라는 유틸리티를 사용하는 방법이 있으나
사용법이 복잡하니 비추천입니다.

telnet 같은 경우에는 표준 입력을 바꿔치기 하는 방법이 통하지 않으니
expect를 사용할 수 밖에 없습니다.
expect에 대한 자세한 정보는 책을 읽으실 수 밖에 없을것 같습니다.
오렐리에서 나온 책이 한권 있는데, 번역본은 모르겠네요.
영문판은 그리 어렵지 않은 편입니다.

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

댓글 달기

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